Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
argo
Зарегистрирован: 22.08.2002 Сообщения: 12
|
Добавлено: Пт Ноя 01 2002 15:36 Заголовок сообщения: Как написать прогу, которая мало грузит проц? |
|
|
Проблема в следущем: Есть скрипт на перле который парсит все страницы, ищет строку с неким номером и заменяет ее на строку соответствующего номера из большого текстового файла. Все это сильно грузит проц, т.к. обращений очень много. Понятно, что лучше текстовик заменить на DBF, не в этом вопрос. Вопрос, как оптимизировать процесс? Слышал, что перл по разному может прикручиваться к серваку. Будет ли выигрыш? Или может на PHP написать? Или на C/C++?
Поделитесь опытом, если такой есть. Кроме указанной проблемы интересует вообще оптимизация скриптов. |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пт Ноя 01 2002 16:29 Заголовок сообщения: Скажу одно: Чуда не будет! (-) |
|
|
- |
|
Вернуться к началу |
|
|
argo
Зарегистрирован: 22.08.2002 Сообщения: 12
|
Добавлено: Пт Ноя 01 2002 16:43 Заголовок сообщения: Re: Скажу одно: Чуда не будет! (-) |
|
|
Чуда и не ожидается. Даже небольшая выгода будет полезна. |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://www. Гость
|
Добавлено: Пт Ноя 01 2002 21:01 Заголовок сообщения: Если можно, то лучше загрузить "большой текстовый файл" в пямять и заранее пронумеровать стрОки, чтоб быстро находить |
|
|
- |
|
Вернуться к началу |
|
|
argo
Зарегистрирован: 22.08.2002 Сообщения: 12
|
Добавлено: Пн Ноя 04 2002 02:23 Заголовок сообщения: Вопрос не совсем в этом (+) |
|
|
Главное - снизить потребляемые ресурсы. А именно, загрузку процессора, поскольку провайдер ограничивает ресурс. Загрузка файла в память с нумерацией строк - идея хорошая, но реализуемая ли для веб-сервера? Т.е. заходит один человек, запускает скрипт, который загружает файл в память, использует его и все? Другой посетитель запустит опять скрипт, который опять загрузит файл и т.д. И смысл в загрузке файла теряется. Или я не прав? |
|
Вернуться к началу |
|
|
Subfire
Зарегистрирован: 11.12.2002 Сообщения: 185
|
Добавлено: Пн Ноя 04 2002 11:38 Заголовок сообщения: Re: Как написать прогу, которая мало грузит проц? |
|
|
На PHP одна фигня будет... А вот на C++ будет ЗАМЕТНЫЙ ПРИРОСТ БЫСТРОДЕЙСТВИЯ, с чем спорить абсолютно бессмысленно. Если конечно написана программа будет не криво. Можно вааще на асме пивать, тока не думаю, что это необходимо =) А так, смело пиши на сихе...однако будет ли провайдер не против того, что ты загружаешь на их сервак это чудо - вопрос к нему. |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://www. Гость
|
Добавлено: Пн Ноя 04 2002 14:14 Заголовок сообщения: А-а-а, ты об этом... |
|
|
Можно держать данные как попало и при необходимости найти нужное или что-то поправить долго и нудно лазать по данным. А можно заранее правильно организовать хранение данных, тратить некоторое количество сил на поддержание порядка, но зато быстро находить искомое. Пример: можно держать данные в неупорядоченном файле, а можно - в ьинарном дереве или в hash-таблице. Короче, отказывайся ты от Plain-текста, переходи на SQL-DataBase! И напиши подробнее, что ты там у себя крутишь - может, посоветуем более конкретно. А еще есть Российская Хостинговая компания http://www.rhk.ru - там при необходимости докупят более мощный процессор, да и MySQL входит в комплекс услуг.
А что касается нескольких копий файла, то есть мапирование файла в память - тогда все копии файла в адресном пространстве разных процессов в реальности занимают память один раз. |
|
Вернуться к началу |
|
|
Subfire
Зарегистрирован: 11.12.2002 Сообщения: 185
|
Добавлено: Пн Ноя 04 2002 17:19 Заголовок сообщения: Re: Вопрос не совсем в этом (+) |
|
|
Все-таки недостаточно данных для того чтобы советовать что-то. Dmitry.Karpov абсолютно прав советуя использовать SQL СУБД, но если действительно характер твоих данных позволяет структурировать их и привести к виду нормальной реляционной БД. Если идет просто вопрос о индексировании и поиски строк - проще пользоваться хешами...СУБД тоже хэширует, но зачем нам лишний процесс?: )) Ну и если идет вопрос о поиске подстрок в строках - используй C++ и оптимизируй алгоритмы поиска - их много, например алгоритм Бойля-Мура, который достаточно мощный и простой в реализации.. Так что думай вот, или конкретезируй, какие стоят задачи и какие наборы данных. Удачи. |
|
Вернуться к началу |
|
|
|