![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Icaros |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 26.5.2006 Репутация: нет Всего: нет |
Уважаемые пользователи Сети. Помогите советом ламеру. Есть такая задача: необходимо написать программу для решения уравнений теплопроводности методом Фурье. Если не вдаваться в подробности теории, скажу следующее: в принципе есть некое уравнение, которое просчитывается много раз. в результате должен быть образован массив с решением уравнений. Все дело в том, что программа должна довольно много считать. В конце нужно построить график по результатам. Если спросите зачем это все, то отвечу - просто надо. И надо реализовать именно для Web.
Я написал программу на PHP. Но, к сожалению, она слишком долго выполняется (45 секунд). Мне сказали, чтобы я обратил внимание на CGI программирование, якобы программы, написанные для CGI гораздо быстрее выполняются. Подскажите пожалуйста, есть ли смысл писать программу для CGI и если есть, то на каком языке ? |
|||
|
||||
| Tirael |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 31.1.2006 Где: Москва Репутация: нет Всего: 7 |
Хммм...почему меня берут сомнения, что дело воовсе не в языке программирования. на сколько ты думаешь CGI быстрее PHP ? Наверное прцентов на 5-20. Ощутимого уменьшения времени это не даст.
Скорее всего дело в алгоритме, который медленно работает. Программу в СТУДИЮ --------------------
|
|||
|
||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Icaros, если ты думаешь, что проблема в PHP, накатай программу на Си, Паскале... и сравни результаты. Это первый вариант.
Другой вариант - то, что тебе преложил Tirael. При этом тебе, конечно, проще, но далеко не каждый будет разбираться в твоем коде (это же не несколько строк). Дадут скорее всего поверхностные советы, которые, в принципе, могут существенно помочь, а могут и нет. Кстати, если воспользуешься этим вариантом, то тебе, скорее всего, на другую ветку, т.к. код на PHP у тебя уже есть. Хотя как сказал Tirael:
--------------------
Я не волшебник, я только учусь... |
|||
|
||||
| Icaros |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 26.5.2006 Репутация: нет Всего: нет |
На VB эта программа работает довольно быстро. Там, где три вложенных цикла, программа должна провести около 50000 операций. Это сообщение отредактировал(а) Icaros - 30.5.2006, 09:20 |
|||
|
||||
| Rezzonans |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 21.4.2005 Репутация: нет Всего: нет |
Icaros, помоему это велосипед. Пиши программу на си! Будет конечно сложнее, чем на пхп, зато и результат будет более чем ощутимым! Другого выхода (за исключением доработки алгоритма) при помощи CGI я не вижу, perl не на много быстрее пхп будет!
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
Icaros, есть такая вещь, как профайлеры. Исследуй одним из таких свою программу. Основное-то время тратися, может, и на рассчёты... Но кто знает, может там есть ещё "узкие" места, о которых ты и не догадываешься и коорые можно оптимизировать, не затрагивая(пока что!) алгоритм.
|
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Rezzonans,
вот это ты сказал. Все дело в алгоритме. Алгоритм на Perl будет быстрей работать, чем аналогичный на PHP, но наверня-ка будет уступать алгоритму на Cи. Увеличить скорость работы CGI - это просто (FastCGI, mod_perl, ...). -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| FunnyFalcon |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 27.3.2006 Репутация: нет Всего: 7 |
Люди!!! Не забывайте, что CGI - это не только perl. Программа на C (написанная соответственно) тоже имеет право носить гордое имя CGI - и скорее всего именно это и советовали Icaros.
PS. Если не хочешь лезть в С попробуй Python или (что еще быстрее) Lua (www.lua.org)(www.keplerproject.org). Они менее удобны, но для счетных задач намного быстрее (особенно Lua). Добавлено @ 13:52
Запрос: http://base/cgi-bin/test.lua/test?sdf=4 Ответ:
|
||||
|
|||||
| aksined |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 26.12.2005 Репутация: нет Всего: 1 |
А так не делают, и если нет, то почему?
положим, писать на с или vb cgi-программу от и до не очень хочется. сейчас есть программа, написанная на vb, которая устаривает нас по скорости. Почему бы не написать к ней веб интерфейс на пхп или перл? На них, подозреваю, проще сделать разбор пользовательского ввода, если он есть, и вывод результатов. А между ними - вызов vb с помощью ipc. |
|||
|
||||
| Rezzonans |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 21.4.2005 Репутация: нет Всего: нет |
sharq, говорю про php версии 5, и выше. На данном этапе получается что php не на много уступает перлу, за исключением только выполнения достаточно долгих циклов, но это устранимо в дальнейшем, как я понял
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел |
|||
|
||||
| FunnyFalcon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 27.3.2006 Репутация: нет Всего: 7 |
||||
|
||||
| geckelberryfinn |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 3.12.2003 Репутация: нет Всего: нет |
Обязательно методом Фурье? Может разностной схемой бухнуть? Ряды, получающиеся в методе фурье могут довольно долго сходиться.
|
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |