The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Новая версия высокопроизводительного шаблонизатора CTPP"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от opennews (ok) on 15-Янв-09, 22:43 
Вышла очередная версия шаблонизатора CTPP (http://ctpp.havoc.ru/) (2.4) - высокопроизводительного аналога хорошо известных библиотек Template Toolkit, HTML::Template, HTML::Template::Pro. Отличается высокой скоростью работы (в 2 - 3 раза быстрее HTML::Templte::JIT, в 25 - 30 раз быстрее Template Toolkit), расширяемостью функционала и удобством работы. В новой версии введены операторы <TMPL_call и <TMPL_block.


Библиотека отлично документирована, есть инструкции по установке, примеры и учебники для Perl, PHP и С++. CTPP написан на С++. Поддерживаются операционные системы Linux, FreeBSD и Solaris на архитектурах i386, amd64, sparc и ultra sparc. Имеет интерфейсы для языков Perl, PHP и Python. Лицензия - модифицированная BSD.

URL: http://ctpp.havoc.ru/
Новость: http://www.opennet.ru/opennews/art.shtml?num=19809

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Pilat (ok) on 15-Янв-09, 22:43 
Как замена HTML::Template может и пройдёт. Но Template-Toolkit точно заменяет? Что-то по описанию слабовато.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 15-Янв-09, 23:28 
до ТТ и близко не дотягивает. после ТТ вообще ни на что смотреть не хочется. и не сказал бы что из-за TT у меня что-то тормозило.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от js on 15-Янв-09, 23:58 
Еще одна попытка написать PHP.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Дмитрий email(??) on 16-Янв-09, 00:02 
>до ТТ и близко не дотягивает. после ТТ вообще ни на что
>смотреть не хочется. и не сказал бы что из-за TT у
>меня что-то тормозило.

Абсолютно поддерживаю!! Интересно как они c TT сравнивали небось в CGI каждый раз создавая обьект

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 16-Янв-09, 01:17 
А мне гораздо больше нравится чем TT. По фичам все умеет, по скорости реально сильно лучше.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Alexey (??) on 16-Янв-09, 11:04 
Уже год использую, очень быстрый всем нравится.
когда время ответа сервера около 20 миллисекунд, шаблонизатор оказывает существенное влияние на общее время.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 16-Янв-09, 11:31 
>А мне гораздо больше нравится чем TT. По фичам все умеет, по
>скорости реально сильно лучше.

по скорости-то оно лучше, а по удобству? можно, скажем, хэндлер запроса передать внутрь шаблона, чтоб не фетчить сначала все записи и не передавать массив?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от xepacim email on 16-Янв-09, 11:47 
а вот навскидку перлы из кода:
1. Индусский свичь src/CTPP2BitIndex.cpp:132
2. Мега fault-tolerant код src/StaticData:110
3. Аццкий кастинг (вы таково не видели!) src/VMFileLoader.cpp:101
4. Еще fault-tolerant'нее чем п.2 src/VMFileLoader.cpp:168
   malloc() конечно всегда сработает, ога. fread() тем более.
5. Индусский иф src/VMSTDLib.cpp:101
6. Спагетти-свичь на 1213 строк src/VM.cpp:175

не-не-не. как-нибудь обойдемся.

зы: курите код иногда, прежде чем юзать.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (??) on 16-Янв-09, 12:21 
Шитухин - ЦГИ? Бл###, не знаешь о чем говоришь - не тявкай! Этот шаблонизатор (на равне с CAS - C++ Application Server) разрабатывался Шитухиным для майл.ру, использовался в жж/суп фабрик, и актифно юзается в высоконагруженных веб проектах многими крцпными компаниями. Знал бы что стоило его уговорить полностью открыть его проекты для людей, - не п##дил бы напрасно!!!
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (??) on 16-Янв-09, 12:35 
>а вот навскидку перлы из кода:
>1. Индусский свичь src/CTPP2BitIndex.cpp:132

не нашел о чем ты...

>2. Мега fault-tolerant код src/StaticData:110

это некритичная точка - тут можно.

>3. Аццкий кастинг (вы таково не видели!) src/VMFileLoader.cpp:101

это фишка, ля, а не баг!

>4. Еще fault-tolerant'нее чем п.2 src/VMFileLoader.cpp:168
>   malloc() конечно всегда сработает, ога. fread() тем более.

в догонку к 2 - то-же самое.

>5. Индусский иф src/VMSTDLib.cpp:101
>6. Спагетти-свичь на 1213 строк src/VM.cpp:175

как бы тебе объяснить что делает компилятор со свичем... про бинарные деревья слышал?

в общем - молчал бы лучше!!!

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от xepacim email on 16-Янв-09, 12:43 
AFAIK, в жж/суп фабрик афтар был единственным кто это юзал. и последним. и неплохо бы примеры *крупных* компаний, где это реально юзается. а то что-то не верится, чесслово.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от xepacim email on 16-Янв-09, 12:53 
ну если комуто нравится индусский код-стайл, я ж разве против? юзайте пожалста.
и этож только мое скромное мнение, что код индусский. комуто мож и нравится.
некоторым вообще вот кажется что malloc() в прогах на це++ да еще в таком количестве - моветон. наверное все они лохи. а про бинарные деревья.. погугли про computed goto. и про spaghetti-code.
зы: не обижайтесь. не обижаться надо, а фиксить баги, ога
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (??) on 16-Янв-09, 12:54 
компании палить не буду т.к. сам им это дело и прикручивал.
насчет афтара - не он один...
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (??) on 16-Янв-09, 12:59 
ХЗ, есть же пишушие на бейсике и смотрящие на всех с высока!
сам из цпп довольствуюсь классами, стл и шаблонами - остальное по-старинке, хоть тем-же маллоком...
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "про свич"  
Сообщение от И email on 16-Янв-09, 15:45 
по поводу свича   - каким образом вы бы переписали код?
//Не разработчик данного проекта, просто интересно.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "про свич"  
Сообщение от xepacim email on 16-Янв-09, 16:05 
1. это большое исследование типа как с этим борются люди.
http://www.jilp.org/vol5/v5paper12.pdf
2. можно содержимое кейсов то в методы поубирать (это про спагетти). хрен то конечно один, но читается/понимается проще.
зы: это все имхо, конечно
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 16-Янв-09, 16:32 
а есть ли cgi mvc c++ framework ?
сколько ищу, так ничего не нашел (
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 16-Янв-09, 17:51 
интереса ради сравнил производительность ctpp и TT: при обработке миллиона шаблонов (простых) ctpp быстрее в 4 раза -- если шаблон текстовый и в 8 раз -- если шаблон откомпилирован. ну пусть в 10, но не в 25-30! :)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

20. "про свич"  
Сообщение от И email on 16-Янв-09, 18:33 
Содержимое кейзов в отдельные методы??
вы именно об этом кейзе, на который сослались,  говорите?

    switch(iBitPos)

    {

        case 0:

            return iResult & 0x01;

...

        case 6:
            return iResult & 0x40;
        case 7:
            return iResult & 0x80;
    }


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

21. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от user (??) on 16-Янв-09, 19:21 
>а есть ли cgi mvc c++ framework ?
>сколько ищу, так ничего не нашел (

Есть: CAS. http://cas.havoc.ru/download/

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

22. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от user (??) on 16-Янв-09, 19:23 
>интереса ради сравнил производительность ctpp и TT: при обработке миллиона шаблонов (простых)
>ctpp быстрее в 4 раза -- если шаблон текстовый и в
>8 раз -- если шаблон откомпилирован. ну пусть в 10, но
>не в 25-30! :)

Как сравнивали? На чем? Какие конструкции использовали?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

23. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от user (??) on 16-Янв-09, 19:32 
>а вот навскидку перлы из кода:
>1. Индусский свичь src/CTPP2BitIndex.cpp:132

Самый нормальный свич. Оптимизатором раскладывается в GOTO таблицу. Учите матчасть, как строятся современные компиляторы.

>2. Мега fault-tolerant код src/StaticData:110

Нет смысла там проверять, сколько и чего выделяется.

>3. Аццкий кастинг (вы таково не видели!) src/VMFileLoader.cpp:101

Нормальная проверка на big/little endian и совместимость типа double ieee 754 на разных платформах.

>4. Еще fault-tolerant'нее чем п.2 src/VMFileLoader.cpp:168
>   malloc() конечно всегда сработает, ога. fread() тем более.

Напишите автору bugreport.

>5. Индусский иф src/VMSTDLib.cpp:101

Ну, можно сделать через массив, но зачем оно?

>6. Спагетти-свичь на 1213 строк src/VM.cpp:175

Обычный такой switch. Не нравится? Придумайте, как переписать более лаконично.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

24. "про свич"  
Сообщение от xepacim email on 16-Янв-09, 20:27 
конечно нет, про спагетти из VM.cpp. ссылка на статью тоже про него.
а этот мелкий свитч вообще пример из книги "магия битов для блондинок"

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

25. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от xepacim email on 16-Янв-09, 20:39 
>Самый нормальный свич. Оптимизатором раскладывается в GOTO таблицу. Учите матчасть, как строятся
>современные компиляторы.

это не так. вернее не совсем так. могу и пруф-линк поискать.

>Нет смысла там проверять, сколько и чего выделяется.

в лабораторной работе - да. но в высоконагруженном проекте, имхо, стоило бы

>Напишите автору bugreport.

тут согласен

>Ну, можно сделать через массив, но зачем оно?

ну если это массив хэшей, то получаем +читаемость, +перфоманц, -хардкод

>Обычный такой switch. Не нравится? Придумайте, как переписать более лаконично.

дело не в лаконичности, а в читаемости. лечится рефакторингом. а про перфоманц
тут: http://www.opennet.ru/openforum/vsluhforumID3/48111.html#17
кстати, как раз интерпретаторы байт-кода виртуальных машин. имхо, познавательное чтиво


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

26. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 16-Янв-09, 20:52 
не впечатлило ((
вопрос открыт! ((
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

27. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (ok) on 16-Янв-09, 23:18 
Судя по вечно всплющамся от темя линкам - ты теоретик и никак толком доказать кроме как линком на другого теоретика не можешь... В общем глубоко твои доводы и линки с терминами и индусскими стилями. Чтоб поверить в то что тебе пытаются объаснить и до чего-то дойти - поставь дизассемблер и выкини из башки всю ту лажу, которую ты где-то умудрился подцепить!
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

28. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (ok) on 16-Янв-09, 23:21 
>не впечатлило ((

интересно узнать что?


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

29. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от xepacim email on 16-Янв-09, 23:45 
>Судя по вечно всплющамся от темя линкам - ты теоретик и никак
>толком доказать кроме как линком на другого теоретика не можешь...

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

30. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 17-Янв-09, 01:28 
да все! (
перепробовал кучу существующих lib для написания на с++, пока ничего толкового не нашел! (
cas знаю с версии 3.1.7.
хочется нормальный mvc c++ framework, типа zend framework, но для c++!
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

31. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (ok) on 17-Янв-09, 08:13 
когда человек на вопрос "что именно" говорит "да все" - это значит он явно п из дит!
вы вообще его поднимали? или может расскажите что именно не устроило?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

32. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 17-Янв-09, 11:07 
сравнивал http://ctpp.havoc.ru/helloworld_perl.html с аналогичным на ТТ, по результатам time.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

33. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 17-Янв-09, 15:56 
>>интереса ради сравнил производительность ctpp и TT: при обработке миллиона шаблонов (простых)
>>ctpp быстрее в 4 раза -- если шаблон текстовый и в
>>8 раз -- если шаблон откомпилирован. ну пусть в 10, но
>>не в 25-30! :)
>
>Как сравнивали? На чем? Какие конструкции использовали?

а на примере http://ctpp.havoc.ru/newslist_perl.html ctpp быстрее TT в 2 раза с нескомпилированным шаблоном и в 7 со скомпилилированным.

freebsd 7.0, perl 5.8.7, CTPP2 v2.3.1, HTML-CTPP2-2.3.11, TT 2.14

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

35. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от xepacim email on 17-Янв-09, 21:10 
ссылок нет - слиф защитан.
специально поинтересовался: суп не юзает *это* - не знаете, не гоните. а знаете - сцылки в студию
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

36. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от xepacim email on 17-Янв-09, 21:26 
>вы вообще его поднимали? или может расскажите что именно не устроило?

ничего, что я скажу?
специально скачал это.
имхо, праздник хардкода, копипаста и большинства изученных антипаттернов.
просто грепнуть слово goto - и все, диагноз ясен - пожизненный газенваген с гвоздями.
зы: может, конечно, это экстремизм.. мяхче говоря, не знаю за какие бабки я п стал это юзать

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

37. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от Аноним (??) on 18-Янв-09, 00:48 
+1
не хотел отвечать этому пеньку, но ты изложил мои мысли на 100% )))
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

38. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (ok) on 18-Янв-09, 09:27 
все еще не п из ди это не твои слова и ты его даже не ставил!
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

39. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (ok) on 18-Янв-09, 09:58 
грепни ядра линуха и фри на готу, а либц еще и на лонгджампы, - потом говори, чтоб ты использовал, а что нет.

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

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

40. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от User294 (ok) on 18-Янв-09, 11:06 
>просто грепнуть слово goto - и все, диагноз ясен - пожизненный газенваген
>с гвоздями.

Самое смешное что компилер все-равно странслирует все ваши выкрутасы в JMP-ы, сколько бы вы там не выгибались (по сути то самое goto и есть). Забыв у вас спросить хотите вы этого или нет.Процессоры так работают.А чистоплюйство - круто конечно, но если для обхода goto автору приходится строить двухэтажный велосипед подпертый вычурными костылями и впятеро объемнее (а такое тоже бывает) - еще вопрос кого там в газенваген, имхо.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

41. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от xepacim email on 18-Янв-09, 12:16 
не надо адвокатить кривые руки - их выпрямлять надо.
ядро на сях писано - другой все-таки язык, не принимается.
переписывать чтоб нормально работало как раз часто приходится. и не под себя, а просто чтоб не падало.
зы: что-то мне подсказывает, что вами ни одного компилятора не написано. а советы от нубов я не принимаю.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

42. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от xepacim email on 18-Янв-09, 12:22 
еслиб там проблема была только с goto, еще б ничего.. там куда хуже все.
куда компилер что странслирует я примерно представляю. однако и о культуре кода неплохо бы помнить. ибо по достижении проектом некой критической массы его станет просто нереально поддерживать. рефакторинг - не такое уж сложное дело. и времени отнимает немного (когда в меру)


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

43. "Новая версия высокопроизводительного шаблонизатора CTPP"  
Сообщение от parad (ok) on 18-Янв-09, 15:06 
немного ниже ты написал про культуру кода, тут ты пишешь про разные языки и приемственность готу для си. найди еще раз те функции с готу, и глядя только в тело функции ответь - будет ли на си скомпилен этот код в то-же самое? правильно - ничем от си не отличается, даже бинарь будет тот-же.
серьездно, по-опыту - готу чато бывает облегчает жизнь: повышает читабильность и скорость особенно в критичных местах. мы сейчас спорим ниочем - если привык жестко избегать готу, то имхо это только тебе в минус, т.к. ты осознанно избавляешь себя от инструментов тебе же и данных - твое имхо может быть другим.
в общем, если сможешь реализовать эти функции без готу, индусского и спагетти кода, при этом не раздувая код и не в ущерб скорости - пиши сюда и авторам, тогда никто и слова не скажет.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру