this is the same problem here with big indices. Each Optimize operation causes a regeneration of the whole index files, it's the reason for this publishing delay. I believe that disabling optimize on commit and optimizing indices via cronjob once a day it's ok, we have these setup here too.
regards!
--
Xavier Serna
eZ Publish Certified Developer
Departament de Software
Microblau S.L. - http://www.microblau.net
+34 937 466 205
Sorry to add a reply to such an old thread, but we recently had the same problem. On Publishing the eZ Find Java process would max the CPU out for 25 seconds on a small site! We had no option but to disable this to get an acceptable speed...
Disabling optimize on commit is indeed something you should disable for any site that has more than a few hundres of objects (most do ;) )
You can set up a cron job that optimizes the index once a week or once a day. See the cronjobs directory in ezfind.
If commits are taking too long, consider using the commitWithin ini setting in eZ Find 2.3 (specifying a time that is 2x the average commmit time -- see the logs for that, tyoically i would recommend 5000, which is 5 secs). This is a bit like delayed indexing, but then handled by the backend Solr.