Можем ли мы использовать многопоточность для преобразования документа Microsoft Word в HTML в C #? - PullRequest
2 голосов
/ 15 мая 2011

У меня есть служба Windows, которая опрашивает базу данных для любых загруженных документов типа doc, docx, pdf и rtf, конвертирует их в HTML и сохраняет в локальной файловой системе. Документы извлекаются из базы данных и помещаются в очередь в памяти, а затем извлекаются несколькими потоками для обработки из общей очереди.

Проблема, с которой я сталкиваюсь, заключается в том, что с течением времени обработка замедляется. Преобразование происходит быстрее в первые несколько дней, скажем, 2 секунды для документа размером 50 КБ, и медленнее через несколько дней, скажем, 20 секунд для того же документа. Все, что я вижу, - это тенденция к сокращению времени обработки по мере того, как дни прогрессируют. Я не мог понять, что вызывает эту тенденцию к снижению. Даже перезапуск службы Windows не помогает.

Microsoft Office установлен на Windows Server для преобразования документов. И в день почти 2000 документов конвертируются в HTML.

Итак, мой вопрос: можем ли мы использовать многопоточность для обработки документа Microsoft Word в HTML?

1 Ответ

3 голосов
/ 15 мая 2011

Я думаю, что вы уже используете как можно больше многопоточности - вы не можете сделать Word более эффективным, просто запустите несколько экземпляров Word параллельно (что вы делаете).Я бы посоветовал проводить больше времени в расследовании.

Пройдите регистрацию / отслеживание и профилирование.Узнайте, какие строки кода / методов являются действительно медленными.

Если окажется, что Word медленный, попробуйте просмотреть его и систему.Откуда медлительность?Это использует весь процессор?Возможно, к диску обращаются слишком много?Может быть, где-то собрано слишком много временных файлов?Или, может быть, у вас не хватает оперативной памяти, а Windows меняется как сумасшедшая?В последнем случае, что все это использует?Может быть, вы что-то не закрываете должным образом (например, само Word или файлы, которые вы открываете)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...