Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Выигрыш в производительности при отказе от компонент

00 голосов
4
Друзья!
Может быть кто интересовался, пробовал или просто знает ответ на следующий вопрос.

Если взять от битрикса исключительно его админку, а в публичной части юзать только api, на сколько можно выиграть в производительности?

Если вместо конструкций вида:

Код
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

//тело страницы

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");


использовать что-то типа:


Код
require_once($_SERVER['DOCUMENT_ROOT'].’/bitrix/modules/main/include/prolog_before.php’); 
   

// Подключаем нужный модуль
CModule::IncludeModule(‘iblock’);  
 
// Работаем без компонент, на чистом апи  
  
 

 require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");



что можно с этого получить?

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

Кто что скажет?

Спасибо.
спросил 12 Янв, 14 от iwa6ka (100 баллов)

4 Ответы

00 голосов
А что для вас нормальная нагрузка? За сколько должна отдаваться страница, чтобы быть достаточно быстрой для вас?
ответил 25 Апр, 14 от Arn4 (2,140 баллов)
00 голосов
Не могу назвать точные цифры, но, меня немного напрягает, что страница, созданная в битриксе и выводящая из инфоблока N-ое количество записей загружается в разы дольше нежели аналогичная страница, работающая на CodeIgniter, например. 

Это очень примитивный пример, но, проблемы производительности битрикса известны всем. Он имеет очень сложную структуру БД, он имеет миллион инклудов, он требует более мощного железа и пр... но, зато дает массу преимуществ перед другими CMS или фреймворками. 

Просто сейчас я делаю сайт, который в дальнейшем должен будет выдерживать нагрузки от 10К уников в сутки. Уже сейчас, когда БД довольно пуста, когда посещений на сайте 0, когда сайт находится в разработке - я, порой, замечаю некую неповоротливость битрикса. Конечно, можно написать все на каком-нибудь фреймворке, но, хотелось бы, все таки, попытаться максимально ускорить битрикс, и не отказываться от всех его плюшек.

Посему, меня интересует, будет ли толк в отказе от компонент и переходе на чистое апи.
ответил 20 Авг, 14 от iwa6ka (100 баллов)
00 голосов
Цитата
Дмитрий Налбандян пишет:
на чистое апи.

а типа компоненты на грязном API?
если речь о типовых компонентах - да, в некоторых случаях можно получить выигрыш написав свой компонент со своими API (в типовых как правило за счет обеспечения универсальности может что то не использоваться для решения какой то задачи и этим пожертвовать можно).
В некторых = нет
вообще ваш вопрос бесполезен
Битрикс - инструмент
и надо знать его архитектуру, чтобы делать выводы - поможет что то или нет.
я с точностью до 50% отвечу на ваш вопрос
и да и нет smile:)


Цитата
Дмитрий Налбандян пишет:
Это очень примитивный пример, но, проблемы производительности битрикса известны всем. Он имеет очень сложную структуру БД, он имеет миллион инклудов, он требует более мощного железа и пр... но, зато дает массу преимуществ перед другими CMS или фреймворками

В свое время предприятия для перехода на 1С 8 с семерки целые парки компов меняли smile;)
а тут блин всего то надо морально устаревший сервак (или хостинг) сменить на более менее соответсвующей хотя бы прошлой эпохе.
Я не говорю про какое то мощное железо - о чем вы? Не у всех ведь проекты с миллионными хитами.
ответил 25 Дек, 14 от jenia (1,500 баллов)
00 голосов
Один из плюс в пользу компонентов vs pure API:
 - возможность использовать кеширование компонента "из коробки"
 - разделение шаблон+логика "из коробки"

Есть подозрение, что скорость будет всё-таки хуже, чем при pure API. Правда это интуитивно, тестов, подтверждающих мысль, я не делал =)
Должно быть что-то вроде
бистро > API+HTML Сache > API+Php Cache > Component+Cache > API > Component

Но, сравнивать  с CodeIgniter, всё же смело.
ответил 14 Апр, 15 от Alexiaz (320 баллов)