Сейчас на форуме: rmn, bartolomeo, asfa (+5 невидимых)

 eXeL@B —› Оффтоп —› Массивный веб проект - что лучше выбрать?
Посл.ответ Сообщение

Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 20 августа 2008 19:29 · Поправил: locker_fx
· Личное сообщение · #1

Приветсвтую!

Вобщем, как всегда нужна консультация коллег по цеху. Вобщем нужно написать достаточно мощное веб приложение( с родни поиску). У меня есть опыт разработки под Вэб, только лишь на PHP. Сейчас уже реализовали часть, именно на PHP. В итоге в средеднем выполнени скрипта занимает 2+ секунд на виртуальном хостинге(когда проект будет завершён он будет перенесён на что-нибудь помощнее, но в любом случае, нужно что-то думать со скоростью), а ведь это только часть функционала!

Сразу стал вопрос, на чём писать? Perl или Си? Я конечно склоняюсь больше к Си. Но сразу трабла, если мне неизменяет память, то на вирт. хосте. нельзя использовать свои проги. Да, можно скомпилить Си, как cgi. Не потреятся ли при этом скорость? Легко ли потом переделать это под нормальную Си прогу, чтобы поставить на сервере?

И ещё вопросик, на каком Си лучше остановится в данном случае? gcc? А под виндой, как юзать? Желательно под виндой писать, а потом переносить на линукс сервер.

Вобщем, нужны любые советы, касательно массивных вэб разработок. Заранее всем спасибо!

-----
моя подпись!





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 20 августа 2008 20:56
· Личное сообщение · #2

locker_fx пишет:
Сразу стал вопрос, на чём писать? Perl или Си? Я конечно склоняюсь больше к Си. Но сразу трабла, если мне неизменяет память, то на вирт. хосте. нельзя использовать свои проги. Да, можно скомпилить Си, как cgi. Не потреятся ли при этом скорость? Легко ли потом переделать это под нормальную Си прогу, чтобы поставить на сервере?

Скомпиленая прога которая получает fd это и есть cgi. В таком случае ты будешь писать весь html в stdout - и усё.

Обычно такие проекты разбивают на слои. Например web logic на php + куча библиотек что б не сильно мариться с html, а самый низ - на C/C++. То есть из php вызываешь dll function или просто exec() процесс. Ессно скомпиленый код не думает про HTML



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 20 августа 2008 21:11 · Поправил: locker_fx
· Личное сообщение · #3

s0larian пишет:
Обычно такие проекты разбивают на слои. Например web logic на php + куча библиотек что б не сильно мариться с html, а самый низ - на C/C++. То есть из php вызываешь dll function или просто exec() процесс. Ессно скомпиленый код не думает про HTML

Да имеено так мы и планируем.

Сейчас вопрос стоит несколько другой. На чём писать сам низ? Перл или Си? Насколько различна скорость(при условии идентичности алгоритма)?

Насколько я понял, в данном случае у СИ есть 3 существенных недостатка по сравнению с перлом( если где-то ошибаюсь, просьба исправить):
1)Сложность написания самого кода //Ну впринципе это решаемо Т.е. если оно того стоит, лучше спать на час меньше но написать уже что-то хорошее
2)Гемо с перносом. Т.е. как я понял, код написанный под виндой может быть проблемно перенести на линь. //Я так понимаю есть только одно решение - ставим линь дома второй осью(впринципе уже стоит, главное её под сервер заточить)
3)В случае Си проги придётся собственно ручно писать кэширование. Или я ошибаюсь?

добавлено:
---
Так-с, нашёл ещё не очень приятный момент - Си и мускул не так просто связать.
---

Если я где-то ошибся, просьба исправить. Также интересует основной вопрос, стоит ли игра свеч?

-----
моя подпись!




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 20 августа 2008 22:11
· Личное сообщение · #4

locker_fx наверно стоит если ты за нее взялся. си наверно будет быстрее перла так как он скомпиленный а перл интерпретатор как и пхп

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 20 августа 2008 22:27
· Личное сообщение · #5

Stack пишет:
locker_fx наверно стоит если ты за нее взялся.

Я имел ввиду, стоит ли заморачиваться с Сями?

Stack пишет:
си наверно будет быстрее перла так как он скомпиленный а перл интерпретатор как и пхп

1)А разве перл нельзя в CGI?
2)Вопрос насколько быстрее? Стоит ли из-за этого наживать кучу гемороя?

-----
моя подпись!




Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 21 августа 2008 06:02
· Личное сообщение · #6

Stack пишет:
си наверно будет быстрее перла

Думаю, что придется locker_fx родить, пока он доведет скорость работы своего CGI (по работе со строками, парсинго и т.п.) до скорости ПЕРЛа или хотябы PHP
locker_fx
Используй перл, думаю скорость тебя вполне устроит

-----
Подписи - ЗЛО! Нужно убирать!





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 21 августа 2008 09:50 · Поправил: s0larian
· Личное сообщение · #7

locker_fx, под С есть оф. либы - дуй на mysql.com. Их же можно вызывать из C++. Для С++ есть ещё и более удобные либы с templates.

Perl/C - первый запускается под interpriter/vm, второй компилется в asm (gcc). Первый автоматом cross-platform (если люди портонули perl modules) а второй надо писать аккуратно что бы перекомпилися. Первый почти всегда медленне, точнее второй можно дико заточить (по скорости). Для С ессно есть pcre который по работе со строками как perl или быстрее.

Windows/Linux: если ты пишешь на С для mysql и не вылезаешь за рамки ANSI C, то это скомпилется на обоих OS.

З.Ы. несколько лет уже пишу/отлаживаю код на Visual Studio а работает это на linux. Более того, если ты хочешь ноль проблем с переносом то компиль в cygwin.



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 21 августа 2008 11:22
· Личное сообщение · #8

nice пишет:
Думаю, что придется locker_fx родить, пока он доведет скорость работы своего CGI (по работе со строками, парсинго и т.п.) до скорости ПЕРЛа или хотябы PHP

Возможно. Но скорость ПХП меня тоже удивила.

s0larian пишет:
под С есть оф. либы - дуй на mysql.com

Ок, спс.

s0larian пишет:
Для С ессно есть pcre который по работе со строками как perl или быстрее.

pcre.ru - оно? Только про Си там ни слова не нашёл блин

s0larian пишет:
Windows/Linux: если ты пишешь на С для mysql и не вылезаешь за рамки ANSI C, то это скомпилется на обоих OS.

А где лучше всего достать справочник, чтобы всё было по стандарту?
Как бы в книжках заметил, что не все стремятся писать по стандарту.

s0larian пишет:
несколько лет уже пишу/отлаживаю код на Visual Studio

Пишешь просто консольное приложение? А потом под линой в gcc компилишь cgi ?

-----
моя подпись!




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 21 августа 2008 11:23
· Личное сообщение · #9

Ага, вот ещё нашёл www.pcre.org/
Приеду, буду смотреть.

-----
моя подпись!




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 21 августа 2008 18:01 · Поправил: locker_fx
· Личное сообщение · #10

nice пишет:
Используй перл, думаю скорость тебя вполне устроит

А в случае частых запросов, не будет ли тормозов из-за загрузки интерпритара в память? Насколько мне известно интерпретатор грузится в память при каждом обращении. Или я ошибаюсь?

-----
моя подпись!





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 21 августа 2008 19:57 · Поправил: s0larian
· Личное сообщение · #11

locker_fx, эта, в MSDN для каждой ф-ции написано является ли это ANSI C или нет. Пиши консольное приложение, используй stdin, stdout - это всё работает на *unix точно так же. И компиль под cygwin/gcc параллельно - это подтвердит не вызвал ли ты чего-то miscrosoft-овского.



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 21 августа 2008 20:40 · Поправил: locker_fx
· Личное сообщение · #12

s0larian пишет:
locker_fx, эта, в MSDN для каждой ф-ции написано является ли это ANSI C или нет. Пиши консольное приложение, используй stdin, stdout - это всё работает на *unix точно так же. И компиль под cygwin/gcc параллельно - это подтвердит не вызвал ли ты чего-то miscrosoft-овского.

Ок, спасибо, буду пробовать. Кстати, а разве cin и cout не покатят?

-----
моя подпись!




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 21 августа 2008 22:28 · Поправил: locker_fx
· Личное сообщение · #13

Вот нашёл pcre.h и pcrecpp.h (разумеется там ещё пачка всяких файлов).

Насколько я понял, то pcrecpp.h - гугловская разработка, сразу вопрос, можно ли её использовать в коммерческих целях?

И вообще нужна ли pcrecpp.h или pcre.h вполне хватит?

-----
моя подпись!





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 22 августа 2008 21:08
· Личное сообщение · #14

locker_fx пишет:
Кстати, а разве cin и cout не покатят?

Это С++. Тут те же ограничения - то что в ISO C++89 и всё остальное что вне. В gcc есть С компилер, и C++. Последний идёт с libstdc++ (в ней STL).



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 23 августа 2008 08:46
· Личное сообщение · #15

s0larian пишет:
Это С++. Тут те же ограничения - то что в ISO C++89 и всё остальное что вне. В gcc есть С компилер, и C++. Последний идёт с libstdc++ (в ней STL).

Т.е. впринципе я могу использовать плюсы?
А как быть в этом случае с pcre.h? Если использвать эту библу в проге написанной на плюсах, работать будет?

-----
моя подпись!





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 23 августа 2008 22:23
· Личное сообщение · #16

locker_fx пишет:
Т.е. впринципе я могу использовать плюсы?

Почему "в принципе"? Cross platform проекты существуют мрого лет. Для консольных прог тут всё совсем просто - используешь io streams - std::cout, std::cin.

Про С либы всё ещё проще - из С++ можно вызвать любую С ф-цию. Надо всего-лишь объявить extern "C".



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 24 августа 2008 00:15
· Личное сообщение · #17

s0larian
Можно будет нам в аське пообщаться на эту тему? Если, да, скиньте пожалуйста номер вашей аськи в личку.

-----
моя подпись!



 eXeL@B —› Оффтоп —› Массивный веб проект - что лучше выбрать?

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати