几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】starttransaction Question (http://www.dimcax.com/hust/showthread.php?t=18661)

yang686526 2009-05-07 04:21 PM

【转帖】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.