- Регистрация
- 25.09.2014
- Сообщения
- 194
- Благодарностей
- 118
- Баллы
- 43
Некого рода "bottleneck" в моих мыслях по след.:
Допустим у нас есть небольшой цикл включающий:
0) Проект без использования бразузера
1) Get string из списка (с удалением)
2) Proxy из списка (без удаления, random)
3) POST query с ответом
4) Логическое IF с переменной ответа POST запроса
Ну логично если успешно - заносим стринг в список, завершаем проект.
Ну и тут после пару часов тестов все-же интересен вариант с максимальным КПД.
!! Производительность железа была с запасом в 2 раза больше тестируемого макс. кол-во потоков, канал интернета загружался не более чем на 20-25%. Эти факторы не нужно учитывать и вообще брать во внимание!!
Что будет давать максимальное кол-во итераций за равномерный отрезок времени:
1.1 Добавить цикл внутри проекта (допустим 25-50 повторений) или выполнение проекта до конечного рез-та 1 раз (меняется профиль, берутся данные, отправляем POST и решаем успех или нет, конец действия)?
1.2 Отсюда смежный вытекающий вопрос насчет кол-во потоков их приоритет?
2. По входным данным вопрос, а конкретно из пункта " 1) " в описании проекта, в начале поста. Предположим есть список в 100мб и 10 списков в 10мб. Так как необходимо удаление строк - выходит постоянное обращение и сохранение файла, что несомненно отразиться на всей производительности проекта. Какой вариант эффективней?
Или же остается вариант - загружать в оперативную память (не отмечать галочкой "сохранить изменения"), но сразу возвращаемся к вопросу "1.1". Конкретнее: в случае выгрузки в ОЗУ остается только бесконечное зацикливание.
По итогам тестов на самом деле не очень понятна реальная картина. Без циклирования - быстрее "съедается" входной список. С циклами в 1000 потоков нагружается канал интернета, к тому-же пропорционально что при 100 потоках что при 250, 500 и 1000.
Возможно увеличение потоков даст больший профит.. но тут уже скорее вопрос к девелоперам продукта! Конкретнее намекаю на конфликты при увеличение потоков/процессов.
Допустим у нас есть небольшой цикл включающий:
0) Проект без использования бразузера
1) Get string из списка (с удалением)
2) Proxy из списка (без удаления, random)
3) POST query с ответом
4) Логическое IF с переменной ответа POST запроса
Ну логично если успешно - заносим стринг в список, завершаем проект.
Ну и тут после пару часов тестов все-же интересен вариант с максимальным КПД.
!! Производительность железа была с запасом в 2 раза больше тестируемого макс. кол-во потоков, канал интернета загружался не более чем на 20-25%. Эти факторы не нужно учитывать и вообще брать во внимание!!
Что будет давать максимальное кол-во итераций за равномерный отрезок времени:
1.1 Добавить цикл внутри проекта (допустим 25-50 повторений) или выполнение проекта до конечного рез-та 1 раз (меняется профиль, берутся данные, отправляем POST и решаем успех или нет, конец действия)?
1.2 Отсюда смежный вытекающий вопрос насчет кол-во потоков их приоритет?
2. По входным данным вопрос, а конкретно из пункта " 1) " в описании проекта, в начале поста. Предположим есть список в 100мб и 10 списков в 10мб. Так как необходимо удаление строк - выходит постоянное обращение и сохранение файла, что несомненно отразиться на всей производительности проекта. Какой вариант эффективней?
Или же остается вариант - загружать в оперативную память (не отмечать галочкой "сохранить изменения"), но сразу возвращаемся к вопросу "1.1". Конкретнее: в случае выгрузки в ОЗУ остается только бесконечное зацикливание.
По итогам тестов на самом деле не очень понятна реальная картина. Без циклирования - быстрее "съедается" входной список. С циклами в 1000 потоков нагружается канал интернета, к тому-же пропорционально что при 100 потоках что при 250, 500 и 1000.
Возможно увеличение потоков даст больший профит.. но тут уже скорее вопрос к девелоперам продукта! Конкретнее намекаю на конфликты при увеличение потоков/процессов.