![]() |
#13 |
Участник
|
Основное правило при написании любых циклов
Вынести все то, что не меняется внутри цикла во вне цикла. Исключить бессмысленные повторы. В данном случае совершенно бессмысленным является открытие/закрытие самого приложения Excel. Той среды, внутри которой и живут Ваши документы. Вынесите этот процесс во вне цикла, а внутри только открывайте/закрывайте документы X++: static void Job_Test(Args _args) { ComExcelDocument_RU excel; counter startTime, endTime; com range; int i, j, k; excel = new ComExcelDocument_RU(); for(k=1; k <= 5; k++) { startTime = timeNow(); for(j=1; j < 10; j++) { excel.newFile('',false); for(i=1; i < 10; i++) { range = excel.findRange("A1"); range.value2("dsf"); } // for(i=1; i < 10; i++) excel.closeDocument(false); } // for(j=1; j < 10; j++) print time2str(timeNow()-startTime,1,1); } // for(k=1; k <= 5; k++) excel.quitApplication(false); excel.finalize(); pause; } Время обработки одного цикла по k сразу сократилось примерно в 2,5 раза по сравнению с Вашим первоначальным вариантом.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|