Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 06.03.2007, 01:43   #1
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

И о чем нам это говорит? Это вы для чего написали? И где оно.. упомянутое сравнение с TYPO3?
И сравнение чего с чем??? FastCGI с TYPO3??
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 06.03.2007, 02:59   #2
Konstantin
Senior Member
 
Регистрация: 27.02.2006
Сообщений: 131
По умолчанию

Цитата:
Сообщение от Pavel Antonov Посмотреть сообщение
И о чем нам это говорит? Это вы для чего написали? И где оно.. упомянутое сравнение с TYPO3?
И сравнение чего с чем??? FastCGI с TYPO3??

просто интересно аппроксимировать производительность скрипта, откомпилированного в машинные коды и пхп-скрипта с, примерно, той же нагрузкой на проц и базу
Konstantin вне форума   Ответить с цитированием
Старый 06.03.2007, 03:56   #3
Konstantin
Senior Member
 
Регистрация: 27.02.2006
Сообщений: 131
По умолчанию

[code]
/*
* A simple FastCGI application example in C++.
*
* $Id: echo-cpp.cpp,v 1.10 2002/02/25 00:46:17 robs Exp $
*
* Copyright (c) 2001 Rob Saccoccio and Chelsea Networks
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#pragma warning( disable : 4251)

#define UNICODE

#include <stdlib.h>
#ifdef _WIN32
#include <process.h>
#else
#include <unistd.h>
extern char ** environ;
#endif
#include "fcgio.h"
#include "fcgi_config.h" // HAVE_IOSTREAM_WITHASSIGN_STREAMBUF
#include "c2plib_string.h"
#include "mysql++.h"

using namespace std;


// Maximum number of bytes allowed to be read from stdin
static const unsigned long STDIN_MAX = 1000000;


int main (void)
{
int count = 0;


streambuf * cin_streambuf = cin.rdbuf();
streambuf * cout_streambuf = cout.rdbuf();
streambuf * cerr_streambuf = cerr.rdbuf();


// Connect to the sample database.
mysqlpp::Connection con(false);

if (!con.connect("test", "localhost", "root", "11111", 3306)) {
return 1;
}

tchar_stuff::string_t s(_T("фываыафваафвафываыафваафва"));
tchar_stuff::string_t s1(_T("фываыафваафвафываыафваафва"));

s.reserve(10000);
s1.reserve(10000);

mysqlpp::Query query = con.query();
mysqlpp::ResUse res;
mysqlpp::Row row;


FCGX_Request request;

FCGX_Init();
FCGX_InitRequest(&request, 0, 0);





while (FCGX_Accept_r(&request) == 0)
{
// Note that the default bufsize (0) will cause the use of iostream
// methods that require positioning (such as peek(), seek(),
// unget() and putback()) to fail (in favour of more efficient IO).
fcgi_streambuf cin_fcgi_streambuf(request.in);
fcgi_streambuf cout_fcgi_streambuf(request.out);
fcgi_streambuf cerr_fcgi_streambuf(request.err);

#if HAVE_IOSTREAM_WITHASSIGN_STREAMBUF
cin = &cin_fcgi_streambuf;
cout = &cout_fcgi_streambuf;
cerr = &cerr_fcgi_streambuf;
#else
cin.rdbuf(&cin_fcgi_streambuf);
cout.rdbuf(&cout_fcgi_streambuf);
cerr.rdbuf(&cerr_fcgi_streambuf);
#endif

// Although FastCGI supports writing before reading,
// many http clients (browsers) don't support it (so
// the connection deadlocks until a timeout expires!).


//tchar_stuff::string_t s(_T("фываыафваафва"));

cout << _T("Content-type: text/html; charset=UTF-8\r\n\r\n");

for (int i=0;i<100;i++) {
query << "select * from testtable where uid>5000 and uid<5210";
res = query.use();
// Retreive result rows one by one, and display them.
if (res) {
// Display header
cout.setf(ios::left);
cout << setw(21) << "uid" << setw(10) << "desc" << endl << endl;

// Get each row in result set, and print its contents

while (row = res.fetch_row()) {
cout << s.c_str() << "<br/>";
cout << row["uid"] << ' ' << row["desc"] << ' ' << "<br/>" << endl;
}
}
}



s = _T("фываыафваафва");
s1= _T("фываыафваафва");
for (int i=0; i<4500; i++) {
s += s1;
}
//cout << s.c_str();

}

#if HAVE_IOSTREAM_WITHASSIGN_STREAMBUF
cin = cin_streambuf;
cout = cout_streambuf;
cerr = cerr_streambuf;
#else
cin.rdbuf(cin_streambuf);
cout.rdbuf(cout_streambuf);
cerr.rdbuf(cerr_streambuf);
#endif

return 0;
}


[code]
Konstantin вне форума   Ответить с цитированием
Старый 06.03.2007, 13:24   #4
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Цитата:
Сообщение от Konstantin Посмотреть сообщение
просто интересно аппроксимировать производительность скрипта, откомпилированного в машинные коды и пхп-скрипта с, примерно, той же нагрузкой на проц и базу
А простите, ответ зарание не известен что ли? А на Cи еще быстрее будет, между прочем...
Да и сравниваете вы совсем другое....вообще непонятно что с непонятно чем.... и Вам не в этот форум...
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 06.03.2007, 13:54   #5
Konstantin
Senior Member
 
Регистрация: 27.02.2006
Сообщений: 131
По умолчанию

Цитата:
Сообщение от Pavel Antonov Посмотреть сообщение
А простите, ответ зарание не известен что ли? А на Cи еще быстрее будет, между прочем...
Да и сравниваете вы совсем другое....вообще непонятно что с непонятно чем.... и Вам не в этот форум...
во-первых,
си ничем не быстрее си++, это очевидно..
на выходе компилятора получаем тот же бинарный код с функциями

во-вторых,
мне было интересно поисследовать тему бинарных скриптов под нагрузкой, сравнимой (или превосходящей) тайповскую, и выложить результаты - может кто-то решиться не ставить тайпу и искать другое решение, например, теже бинарные скрипты

в-третьих,
форум называется "Общие вопросы", поэтому, что за привычка флудить порожними разговорами?
Konstantin вне форума   Ответить с цитированием
Старый 06.03.2007, 14:36   #6
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

во-первых, использование объектов влечет за собой дополнитиельные расходы (например с динамическим выделением памяти) и статическое выделение памяти (в случае Си) будет работать быстрее (не верите, проверьте). И что код на выходе получается совершенно разный... и что компиляторы С и С++ вообще говоря соверщенно разные... но это же вы можете такие мелочи спокойно опустить, да?

во-вторых, мы конечно же можем опустить что TYPO3 (еще раз напомню, CMS!!!) исходники которой составляют несколько мегабайт, сравниваются со програмулькой в пару строчек (я говорю о сложности системы), и конечно же правомерно принебречь тем фактом, что нормально настроенная система TYPO3 выдает порядка 50 запросов в секунду. Можно так же пренебречь, что сравнивается выполнение 100 запросов к базе с выполнением от силы 10... если кэша в TYPO3 нет.

в-третьих, само собой разумеется, считается, что в форум про TYPO3 нужно писать про "нечто".... и выдавать свой флуд за научные изыскания.

Я так и не понял... Зачем???? Цель то какая? Доказать, что PHP (C TYPO3 сравнивать нельзя!!!!) медленне чем C++? А Вы не знали, что язык написанный на C/C++ будет медленнее того, на чем он пишется (просто исходя из логики)? По секрету скажу, PHP медленне всех существующих альтернативных скриптовых языков (Perl, Ruby, Python)... не говоря уже о компилируемых... Взяли бы тесты, посмотрели... только нормальные, которые сравнимые вещи измеряют, а не столб с забором...

Только я не понял... и что?
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/

Последний раз редактировалось Pavel Antonov; 06.03.2007 в 14:57
Pavel Antonov вне форума   Ответить с цитированием
Старый 07.03.2007, 00:19   #7
Konstantin
Senior Member
 
Регистрация: 27.02.2006
Сообщений: 131
По умолчанию

Цитата:
Сообщение от Pavel Antonov Посмотреть сообщение
Только я не понял... и что?

мне были интересны цифры, насколько производительнее бинарный скрипт...

а насчет си и с++ - компиляторы разные, в с++ сложнее, но зато на выходе примерно одинаковый по эффективности код

в си не меньше выделяется динамической памяти по сравнению с с++
Konstantin вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 00:57.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория