1 | |
Ускорить работу интерпретатора11.08.2013, 15:03. Показов 2948. Ответов 14
Метки нет Все метки)
(
Очень тяжелый скрипт на 2 часа при работе загружает проц только на 10-15%. Есть ли какие-то настройки для apache или php чтобы отдать больше мощности для скрипта?
0
|
11.08.2013, 15:03 | |
Ответы с готовыми решениями:
14
Как ускорить работу вебсайта Ускорить работу тестов работа интерпретатора php |
11.08.2013, 15:28 | 2 |
из принципиально существенных -- нет. Есть всякие байткод кешеры, но они предназначены для того, чтобы не компилировать код каждый раз, не более... Если у вас скрипт работает 2 часа, то не думаю, что вам поможет это кеширование, ну конечно, если у вас скрипты размером не с гигабайт (а если так, то вам нужно слишком много памяти для того, чтобы это закешировать
![]() Ускоряйте алгоритм
0
|
![]() 463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
|
|
11.08.2013, 15:30 | 3 |
Может это парсер какой нибудь... грузит контент
0
|
11.08.2013, 15:43 [ТС] | 4 |
Это не парсер, алг описывал в соседней теме Вычисление повторов в большой таблице
Ради скорости уже укорачивал переменные и делал другие мелкие вещи (прирост в несколько %), но как ускорить if я не знаю. Уже подумывал над расширением на C, но сложновато, решил отложить как крайний вариант.
0
|
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
|
|
11.08.2013, 17:01 | 5 |
Вероятно, код работает на одном ядре (тогда максимум он 25% сожрет на 4 ядрах), а меньше жрет из-за того, что кроме вычислений занимается IO (диск, запросы к сети и СУБД).
Запускать задачи параллельно придется, чтобы использовать все ресурсы.
0
|
11.08.2013, 17:25 [ТС] | 6 |
А вы подсказали идею на счет параллельности. Осталось только продумать, не может ли это вызвать непредвиденных ситуаций.
Могли бы вы посмотреть на алг, может как-то можно оптимизировать (на счет запросов в цикле к папкам сделал так, потому, что лучше пускай в массиве будет небольшие данные, чем сразу вся база, так быстрее выходит)?
0
|
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
|
|
11.08.2013, 18:14 | 7 |
Может и вызовет. Надо учитывать.
Значительно нельзя. Запись в базу сразу кучей записей значительно быстрее.
0
|
38 / 38 / 13
Регистрация: 22.07.2013
Сообщений: 197
|
|
11.08.2013, 18:47 | 9 |
Эт смотря какой максимальный размер пакета. А если скрипт и база на одной машине, то LOAD DATA INFILE рулит.
0
|
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
|
|
11.08.2013, 19:31 | 10 |
Так же по 1 добавляй, но внурти транзакции.
Вот так без измененияй кода(лишь с добавлением нескольких строк) увеличишь производительность инсертов в сотни раз. Наверняка этого будет достаточно.
0
|
12.08.2013, 00:25 [ТС] | 11 |
Мне в основном update`ы надо сейчас делать, но все равно спасибо за совет)
Добавлено через 4 часа 41 минуту Подумал на счет параллельности. Не получится, к сожалению. Может получится ситуация, когда 2 -файла дубликата из разных папок запишутся как повторы.
0
|
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
|
|
12.08.2013, 09:25 | 12 |
Так у тебя должна быть дополнительная логика для контроля повторов. Просто так ничего не получится.
0
|
12.08.2013, 11:50 [ТС] | 13 |
Дополнительная логика выразится в большом количестве костылей.
Например, идет анализ контрольных сумм файлов папки 20 с папкой 21. В это же время, в другом потоке, сравнивается 21 с 20. Первый поток находит совпадение и записывает: "запись n папки 20 - дубль". Второй поток тоже найдет повтор, но зачет дубль файлу из 21 папки. В итоге - для удаления будет 2 записи вместо 1. Можно было бы сделать алг, который бы одинаково работал бы даже в двух потоках (исключал вышенаписанное), но повтор может быть засчитан для уже обработанной, например, 1й папке (...а сравнивались 20 с 1).
0
|
38 / 38 / 13
Регистрация: 22.07.2013
Сообщений: 197
|
|
12.08.2013, 12:50 | 14 |
Называй файлы на диске именем их хэша.
0
|
12.08.2013, 12:56 [ТС] | 15 |
Так смысла особого то нет (тем более, файлы занимают очень много места и копию с названиями-хешами сделать не получится). В ассоциации база-название файла -> файл на диске проблем нет.
0
|
12.08.2013, 12:56 | |
Помогаю со студенческими работами здесь
15
PHPStorm просит сконфигурировать интерпретатор, а интерпретатора нет в списке. ускорить работу скрипта Ускорить работу Windows Ускорить работу программы Ускорить работу с файлами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Сопоставление с образцом (Pattern Matching) в Python: Списки и словари
py-thonny 19.03.2025
Программисты любят, когда код говорит сам за себя. Представьте, что вы можете просмотреть структуру данных и мгновенно понять, что с ней делать — без сложных условий и вложенных проверок. Именно эту. . .
|
Работа с метаданными EXIF и JPEG в JavaScript
run.dev 19.03.2025
Работа с изображениями в веб-разработке нередко выходит за рамки простого отображения картинки. Современные задачи требуют глубокого понимания структуры файлов и умения манипулировать их внутренними. . .
|
Чеклист для Kubernetes в продакшене: Лучшие практики для SRE
Mr. Docker 19.03.2025
Когда сталкиваешься с запуском Kubernetes в продакшене, невольно задаешься вопросом: почему то, что так гладко работало в тестовой среде, вдруг начинает вызывать головную боль на боевых системах?. . .
|
Разработка продвинутого ИИ в Unity с использованием Behavior Graph
GameUnited 19.03.2025
В разработке игр искусственный интеллект персонажей часто становится тем элементом, который превращает хорошую игру в выдающуюся. До недавнего времени разработчикам под Unity приходилось либо писать. . .
|
Словари в Python: методы работы, оптимизация, сериализация
py-thonny 19.03.2025
Каждый хотя бы раз сталкивался с необходимостью хранить связанные данные, где важна не только сама информация, но и их взаимосвязь. В дебрях Python словари — это тот универсальный инструмент, который. . .
|
Реализация паттерна CQRS с Event Sourcing в PHP
Jason-Webb 19.03.2025
CQRS (Command Query Responsibility Segregation) — это архитектурный паттерн, который разделяет операции чтения и записи данных в приложении. Если вы столкнулись с ситуацией, когда ваше PHP-приложение. . .
|
std::span в C++: Подпредставления и срезы
NullReferenced 18.03.2025
Если вы когда-нибудь работали с большими объемами данных в C++, то наверняка сталкивались с необходимостью манипулировать отдельными частями массивов или контейнеров. Традиционные подходы часто. . .
|
std::span в C++: Доступ к элементам и итерирование
NullReferenced 18.03.2025
В C++ каждый разработчик сталкивается с проблемой эффективного управления последовательностями данных. Представьте: вы работаете с массивом, передаете его в функцию, а затем в другую, и каждый раз. . .
|
Утечки памяти в C#
UnmanagedCoder 18.03.2025
Когда мы говорим о разработке приложений на C#, то часто успокаиваем себя мыслью, что сборщик мусора решит все наши проблемы с памятью. "Память управляется автоматически" — эта мантра прочно засела в. . .
|
std::span в C++: Введение в невладеющее представление
NullReferenced 18.03.2025
С появлением стандарта C++20 у нас появился новый инструмент — std::span, который представляет собой невладеющее представление для работы с последовательностями данных.
std::span — это легковесный. . .
|