2016-12-28 4 views
0

У меня есть N потоков, которые запрашивают веб-сервис и генерируют файл, а затем ждут 30 секунд, а затем делают это снова и снова.Усиление производительности при повороте локальных переменных в атрибуты объектов

У меня есть еще одна нить, открывающая и считывающая эти файлы, вставляя в базу данных, удаляя файлы, ожидая 100 миллисекунд, а затем делаю это снова и снова.

Во всех этих объектах существует множество методов с множеством локальных переменных: целые числа, строки, массивы и другие объекты, специфичные для конкретной инфраструктуры.

В последнее время мы увеличиваем количество потоков для чтения этих файлов, потому что веб-сервис возвращает намного больше данных.

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

Я использую Delphi, но считаю, что на него можно ответить на любой язык программирования или фреймворк.

+0

Это очень вероятно * is * язык/рамки зависит. Что в мире «атрибуты объекта»? –

+1

@CodyGray, _instance variables_, я полагаю. – jaco0646

+0

Прирост производительности должен быть равен стоимости создания экземпляров переменных, умноженных на количество избыточных экземпляров. Для целых чисел и строк стоимость экземпляров незначительна. Для массивов и объектов, ориентированных на инфраструктуру, стоимость зависит от их размера. – jaco0646

ответ

1

Я не думаю, что будет значительное увеличение производительности, если вы включите локальные переменные в атрибуты объектов. Однако генерация файла из одного потока, чтение его из другого, а затем удаление файла, звучит как настоящее узкое место. Если нет истинной причины использовать файл в качестве временного хранилища, используйте один поток вместо двух для запроса веб-службы и затем записи данных в базу данных.

Смежные вопросы