Here are some tests comparing acs_object/cr_item creation/deletion in OpenACS 5.8.1 vs. the forthcoming OpenACS 5.9.0 (current version of the oacs-5-9 branch) caused by the measures 1 to 4 in [1].
In short, all these operations are faster in oacs-5-9
- acs_object creation: 16% faster
- acs_object deletion: 6% faster
- cr_item creation: 6% faster
- cr_item deletion: 9% faster
All these tests were performed in fresh "empty" installations (containing only acs-core + xotcl-core) on a Mac OS X Notebook (2.8 GHz Intel Core i7 with PostgreSQL 9.4.4). The tests first insert 100K acs-objects and delete it, later it inserts 100K cr-items and deletes it again. Below is the raw test data.
As mentioned above, on sites with millions acs-objects, the improvements can be mich larger. An update operation on the context_id of an acs_object dropped on our live system from 2.5 minutes to 10 seconds (under this context_id is a large tree of objects). On operations with leaf objects, the difference will be much less. The changes are especially good for large sites and improve the scalability of OpenACS.
-g
[1] https://openacs.org/xowiki/openacs-todo
=== OpenACS 5.8.1
acs_objects created 100000, total 85945ms, 0.8595ms / object
acs_objects deleted 100000, total 152611ms, 1.5261ms / object
cr_items created 100000, total 206543ms, 2.0654ms / object
cr_items deleted 100000, total 432189ms, 4.3219ms / object
=== OpenACS 5.9.0
acs_objects created 100000, total 72457ms, 0.7246ms / object
acs_objects deleted 100000, total 143823ms, 1.4382ms / object
cr_items created 100000, total 193504ms, 1.9350ms / object
cr_items deleted 100000, total 395428ms, 3.9543ms / object