![]() |
【转帖】starttransaction Question
starttransaction question
starttransaction question i want to generate a large dwg drawing by adding objects to oddbdatabase. as sergey said, i call starttransaction() in the beginning and endtransaction() after adding and modifying most of the objects. but there is absolutely no chage in the time of generation. what else must be done in order to use the transactions for fat generating? thanks in advance for any help; regards chudomir best regards chudomir using transactions minimizes undo recording and notifications processing. if you have undo recording turned off and simply create objects one by one and add them to database you may notice no significant difference in performance. sergey slezkin ok, i understood now. but is there a way to speed up the generation? i have a feeling that mine is too slow. can you give a short description for some technique, used for example in you method for loading a dwg file? thanks for your help. chudomir best regards chudomir be sure you have undo recording turned off (oddbdatabase: isableundorecoring(true)). undo is recorded if it's enabled (disableundorecording(false)) and if oddbhostappservices::newundocontroller() returned not null when database was created. newly created database has undo recording turned on. examle exhostappservices returns non-null undo controller pointer. one more thing: estimating performance makes sense only using release version of libs and project. debug version may be slow because of trace output to msvc window, various run-time checks etc. sergey slezkin thank you for the info, sergey. so i'll take care of the undo/redo recording. i am well aware of the debug/release modes - this is one of this things that we concentrate on (and especially asserts or large pieces codes for debug checkes) but we are using dd_vc6.dll and i think there is only the release version. so compiling in release mode does not actually speed up the generation. thanks a lot. regards chudomir delchev best regards chudomir by the way i think disableundorecoring() is a member of oddbobject not oddbdatabase and should be called for each object separaterly? best regards chudomir oddbdatabase is derived from oddbobject. so it has disableundorecording() method too. it effects undo/redo recording of the whole database. no need calling the method for each object. sergey slezkin |
所有的时间均为北京时间。 现在的时间是 03:41 PM. |