Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.16;
Скачать: CL | DM;

Вниз

Интересный факт...   Найти похожие ветки 

 
kull ©   (2003-05-29 15:43) [0]

Вот написал ActiveX library, в которой есть интерфейс для преобразования документа Word в свой формат...

Вызываю метод ConvertDocument из ActiveX библиотеки двумя способами:

1. из макроса word-a

Public Sub RunConvert()
Dim aa As Object
Set aa = CreateObject("MyConvertors.MyConvertor")
aa.ConvertDocument(ActiveDocument)
End Sub


2. из Дельфовского приложения:
procedure TTestCase_MyConvertors.TestMyConvertion;
var
itfMyConvertor: IMyConvertor;
itfWordApplication: Word2000._Application;
itfDocument: Word2000._Document;
vrntFileName: OleVariant;
begin
itfMyConvertor := CoMyConvertor.Create;
itfWordApplication := CoWordApplication.Create;
try
vrntFileName := "c:\testconvertor.doc";
itfDocument := itfWordApplication.Documents.AddOld(vrntFileName, EmptyParam);

itfMyConvertor.ConvertDocument(itfDocument);
finally
itfWordApplication.Quit(EmptyParam, EmptyParam, EmptyParam);
end;
finally
CoUninitialize;
end;
end;


так вот в варианте 1 метод ConvertDocument работает 0.5 сек, а в варианте 2 - 12 сек.

Откуда такая разница? Я понимаю, конечно что в (1) идет обмен данными внутри одного процесса, а в (2) между процессами, но неужели скорость этого обмена отличается более чем в 20 раз?

Как это объяснить?


 
Skier ©   (2003-05-29 15:45) [1]


> Как это объяснить?

Ты сам себе уже всё объяснил... :)


 
Sandman25 ©   (2003-05-29 15:54) [2]

Я думаю, бОльшая часть времени уходит на загрузку Ворда.


 
kull ©   (2003-05-29 16:10) [3]


> Sandman25 © (29.05.03 15:54)

Нет, в том то и дело, что я говорю именно о времени выполнения метода ConvertDocument. приего выполнении появляется окно с Progress bar-ом. И разницу видно невооруженным глазом...


> Skier © (29.05.03 15:45)

Ну неужели такая разница? Больше чем на порядок.


 
DiamondShark ©   (2003-05-29 16:48) [4]

Да, такая разница.
Представте себе, пусть приблизительно, сколько нужно действий, чтобы передать вызовы между процессами.


 
kull ©   (2003-05-29 17:39) [5]


> DiamondShark © (29.05.03 16:48)

То есть, я понимаю так, что действий этих в 20 раз больше?!
Так что ли?



Страницы: 1 вся ветка

Текущий архив: 2003.06.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
14-50526
Belkova
2003-05-31 21:55
2003.06.16
MainMenu


7-50532
nokk9
2003-04-11 02:14
2003.06.16
Телефон


14-50474
Move
2003-05-28 12:42
2003.06.16
сервер базы данных


1-50371
Timak
2003-06-04 08:58
2003.06.16
Помогите узнать время создания файла


1-50273
GavAl
2003-06-04 15:12
2003.06.16
Форма