Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » CGI-скрипты на языке C

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

olsufr



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
quesejodan, понятно. Все аргументы вне спора.
 

Цитата:
Другой вопрос, что если пишешь на С без какой-либо инфраструктуры, то есть без каких-нить C-Server Pages и тд итп, то самому придётся писать и механизм кэширования скрипта в памяти и тд. Ну или сервер как-нить долго и геморно подстраивать.  
А вот про это мог бы поподробнее расказать, очень интересно? Т.е. кроме самого скрипта на С мне надо еще написать и "механизм кэширования" ?
 
Вообще то говоря, язык Перл мне очень нравится, я просто в восторге от него (на фоне Перла ПХП как-то коряво выглядит).
 

Цитата:
тебе гораздо дешевле написать это на перле скажем и купить машину помощнее...  

Это понятно, но а если я нахожусь на чужой тормозной (или перегруженной) машине,
тогда ... взгляд обращен на С.
 
 

Цитата:
Далее, например перл силён немеряно своими regexp ами и тд. Я сумлеваюсь, что на C так же эфективно напишешь многие функции.
У меня тоже такие сомнения.
 
 

Цитата:
Из перла - точно можно
Как я понимаю, для этого надо в исходниках Перла искать функции или классы с соответствующим нужной Перловской функции названием ?
 
 

Всего записей: 363 | Зарегистр. 07-08-2002 | Отправлено: 17:23 27-06-2003
quesejodan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
olsufr
>> Т.е. кроме самого скрипта на С мне надо еще написать и "механизм кэширования" ?  
не, ну как тебе скать, если у тебя нет контроля над сервером, то это очень геморно всё, то есть даже думать об этом страшно.  
Если ты реально хочешь повысить скорость, то конечно лучше кэшировать всё что не попади и всё такое...и самому это всё делать очень и очень непросто.
 
>>Как я понимаю, для этого надо в исходниках Перла искать функции или классы с соответствующим нужной Перловской функции названием ?  
Ну тут есть много разных способов, хоть из перла либы выбирай, хоть делай perlcc на перловые скрипты, хоть p-code из памяти дампь и потом обрабатывай....

Всего записей: 32 | Зарегистр. 10-06-2003 | Отправлено: 17:50 27-06-2003
olsufr



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
quesejodan, а без кэширования скрипт на С работать будет медленнее?
 

Цитата:
>>Как я понимаю, для этого надо в исходниках Перла искать функции или классы с соответствующим нужной Перловской функции названием ?  
Ну тут есть много разных способов, хоть из перла либы выбирай, хоть делай perlcc на перловые скрипты, хоть p-code из памяти дампь и потом обрабатывай....
Понятно.
 
 
Добавлено
quesejodan, как ты думаешь,  
существует ли такая вещь на свете как компилируемый Перл ?
Т.е. чтобы написав листинг программы на Перле затем можно было бы его откомпилировать в исполняемую программу? Или я хочу невозможного?

Всего записей: 363 | Зарегистр. 07-08-2002 | Отправлено: 17:56 27-06-2003
quesejodan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
olsufr
нет, единичная C программа будет очевидно работать быстрее, чем единичная перловая, но! при массивном запуске перл (если грамотно настроен) кэширует скрипты
 и при следующем запуске программа уже в памяти, в то время как твой экзешник еще надо запускать...
 
Компилируемый перл существует несомненно, но он не так уж и хорошо компилирует..
экзешники здоровые получаются и тд...
perlcc - оно и есть.

Всего записей: 32 | Зарегистр. 10-06-2003 | Отправлено: 18:48 27-06-2003
olsufr



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
нет, единичная C программа будет очевидно работать быстрее, чем единичная перловая, но! при массивном запуске перл (если грамотно настроен) кэширует скрипты  
 и при следующем запуске программа уже в памяти, в то время как твой экзешник еще надо запускать...  
Т.е. можно сказать, что при активном массовом использовании CGI-скрипта (например, на часто посещаемом форуме) преимущества С по скорости теряются и сравниваются с Перловскими (ну и тем более с PHP'ными). Так?

Всего записей: 363 | Зарегистр. 07-08-2002 | Отправлено: 18:58 27-06-2003
quesejodan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
olsufr
зависит, от очень многого...
Честно говоря очень долго выяснять, но недолго проверить
напиши несколько скриптиков на перле  
1) простенький
2) читающий из бд  
3) читающий + пишущий в бд + какойнить процессинг данных
 
и тоже самое на С
отметь время написания каждого.
а затем воспользуйся каким-нить  софтом для бенчмаркинга и тестинга веб-приложений и проверь скорость.
 
Сравни результат.

Всего записей: 32 | Зарегистр. 10-06-2003 | Отправлено: 19:06 27-06-2003
olsufr



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а затем воспользуйся каким-нить  софтом для бенчмаркинга и тестинга веб-приложений и проверь скорость.  
Вопрос чайника: а какой это софт например? Ты имеешь ввиду тестить вэб-приложение на сервере?  

Всего записей: 363 | Зарегистр. 07-08-2002 | Отправлено: 19:11 27-06-2003
quesejodan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сходи по этим 2 ссылкам, но несомненно есть и множество других..
 
http://freshmeat.net/search/?q=stress+test+web&section=projects
http://freshmeat.net/search/?q=web+bench&section=projects

Всего записей: 32 | Зарегистр. 10-06-2003 | Отправлено: 19:19 27-06-2003
DStream

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
quesejodan

Цитата:
А, например, если хостишься у какого-нить провайдера, который имеет свои настройки апача, и при том офигенную нагрузку (куча клиентов).  
И скажем твои перловые скрипты не кэшируются, долго пускаются и тд и тп, а тебе нужно чтоб всё-таки тормоза помене были...
Тогда помогает писать на С.
В таком случае IMHO ничего уже особо не поможет - это уже у хостера машина свопится серьезно и тормоза будут у всех. Хотя, видимо все же старт перлового скрипта поболее памяти потребует. olsufr

Цитата:
А каким спосбом эффективнее всего организовать вывод
многострочного текста?  
Просто более низкоуровневыми функциями (write/_write) например.
Цитата:
Неужели? Получается, что высокая скорость работы CGI-скриптов написанных на С это миф?  
Скорее я бы сказал, что CGI-скрипты, написанные на perl практически не уступают в производительности С-программам. За что отдельное спасибо Ларри . С учетом того как сегодня пишут на С (огромнейшие либы на все случаи жизни) может даже оказаться, что исполняемый код окажется медленнее и неоптимальнее из-за кучи лишних проверок, чем интерпретированый скрипт - все-таки Ларри из тех, кто юзал машинки с несколькими килобайтами оперативки.

Цитата:
А возможно ли, из исходников Перла и ПХП стянуть нужные функции и применить (естественно обработать ручками перед этим) в собственной С-программе ?  

Если это касается прочесть исходник, понять логику и написать аналогично на С - то нет проблем. В общем случае скрипты распространяются в исходном виде.
quesejodan

Цитата:
Далее, например перл силён немеряно своими regexp ами и тд. Я сумлеваюсь, что на C так же эфективно напишешь многие функции.  
Собственно перл написан на С - т.е. как бы по определению это можно сделать, но сколько лет уже perl развивается. Кстати есть библиотеки regex для С.

Всего записей: 605 | Зарегистр. 03-05-2003 | Отправлено: 01:19 28-06-2003
m31

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день могу я узнать почему у меня не работает скрипт на с выводящий картинку:
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
    FILE* fr=fopen("smile.gif","rb");
    char ch;
    printf("Content-type: image/gif\n\n");
    int i=0;
    while (!feof(fr))
    {
        fread(&ch,sizeof(char),1,fr);
        if (feof(fr)) break;
        fwrite(&ch,sizeof(char),1,stdout);
    }
    fclose(fr);
}
Картинка выводится частично, самое начало. Если сначала полностью считать, а потом вывести в поток - происходит тоже самое.  
Очень надеюсь на вашу помощь.

Всего записей: 4 | Зарегистр. 22-01-2006 | Отправлено: 18:28 22-01-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ALL, будьте добры, есть ли какое нибудь Get Started по созданию CGI скриптов на С++?
Просто понять, как что и куда кампилить.

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 19:11 22-01-2006
m31

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это просто. почитай в мануалах к своему апачу. там просто компилишь с-шную программу, эксешник размещаешь в той директории где у тебя лежат cgi скрипты, обычно это localhost/cgi-bin/

Всего записей: 4 | Зарегистр. 22-01-2006 | Отправлено: 19:34 22-01-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А если я собираюсь использовать С на хостинге?

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 21:15 22-01-2006
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://cgi.resourceindex.com/Programs_and_Scripts/C_and_C++/Libraries_and_Classes/

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 22:38 22-01-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо, качаю CGI++
Пытался скачать компилер BloodShed, не вышло, линк мертвый..
Есть ли компилер, маленького размера?
А то все что я вижу в теме выбор компилятора слишком велико для моего доступа

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 14:07 23-01-2006
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://www.microsoft.com/downloads/details.aspx?FamilyID=272be09d-40bb-49fd-9cb0-4bfa122fa91b&displaylang=en
 
Это только command line (VC++) - без среды

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 15:31 23-01-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
31.4 MB
В следующем месяце на чистом траффике начну качать

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 16:26 23-01-2006
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Brodyaga

Цитата:
Есть ли компилер, маленького размера?  

MinGW http://www.mingw.org/download.shtml

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 17:04 23-01-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Куда не ткнусь, 404 ашипка, может у меня с подключением проблемы?
Или SF глючит?
пробовал качать Current MinGW Runtime, MSYS

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 17:20 23-01-2006
vjunk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
m31
Программа работает на Windows или на Unix?
Если на Windows - то проблема с режимом работы stdout - он не двоичный
а текстовый по умолчанию.

Всего записей: 303 | Зарегистр. 23-02-2005 | Отправлено: 17:32 24-01-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » CGI-скрипты на языке C


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru