Написал такую маленькую, но очень полезную штуку для отлова всех тормозных страниц на сайте. На сервере должен быть установлен и настроен Xhprof. Как это сделать - погуглите Ну или здесь почитайте. Скрипты интерфейса Xhprof у меня лежат в директории /xhprof-0.9.4/ в корне сайта. Можете вынести в свою директорию или вообще в отдельный домен можно это все разместить, чтобы все секьюрно и правильно было. Вот, собственно, код который размещаем в /bitrix/php_interface/dbconn.php:
Данный код отлавливает все хиты, работающие больше 1 сек, и заносит их в лог xhprof. Да, есть глобальные переменные. Да, кривовато. Можете предложить своё идеальное решение в комментариях.
В результате в логах Xhprof'а увидим вот такие записи:
Дааа, работы капец как много)) В имени каждого файла отмечается тип запроса к скрипту (http или shell), путь до скрипта и время работы скрипта. Затем, попивая чай/кофе, можно спокойно проанализировать какие участки кода вам нужно доработать по вот таким наглядным графам вызова функций:
Всё. Всем удачной охоты Если кто знает, как в одном хите замерять сразу несколько участков кода и строить по ним отдельные графы, отпишитесь в комментариях, пожалуйста. Еще вот такая неприятность возникает иногда:
Если знаете какие настройки xhprof или php ковырять, подскажите.
Вы уже давно все знаете, что рубль очень сильно обесценился. И продолжает падать вниз. Мне интересно как разработчики реагируют на данную ситуацию в стране. Я вот думаю повышать цены. Хотя надо было это сделать еще вчера
1) Если учитывать комплектующие и серый импорт, то импортные товары, как показано выше, составляют половину и более всех товаров, доступных на российском рынке.
2) "Импортные товары" — это мясо, рыба, овощи и большая доля наименований молочной продукции, которые представлены в магазинах. И они уже начали дорожать: мои средненедельные расходы на продукты питания за месяц выросли где-то на четверть при неизменном наборе и объеме продуктов.
Техника начнет дорожать в январе. Есть основания полагать, что вместе с ней цены взлетят и на другие категории товаров.
Нет никаких предпосылок к тому, что курс рубля в ближайшие несколько лет отыграет обратно. Напротив, по всем признакам, обесценивание российской валюты только продолжится.
3) О повышении расценок веб-студий в условиях грядущей рецессии и финансового кризиса серьезно говорить не приходится. Будет просто здорово, если спрос на сайты в России снизится не до нуля и хотя бы часть существующих студий выживут.
Иван написал: Будет просто здорово, если спрос на сайты в России снизится не до нуля и хотя бы часть существующих студий выживут.
На новые сайты спрос скорее всего снизится достаточно ощутимо. А вот на поддержку уже созданных, думаю, не очень сильно. Например, более-менее крупным интернет-магазинам нужно как-то выживать, а без постоянной техподдержки этого не получится. Это я как диванный аналитик заявляю
Итак. Прошло примерно 2,5 года. Курс как был в декабре 2014 года 56 рублей, туда-сюда поплавал, и сейчас так же висит 56 рублей - плюс-минус. Кто ждал, что он отыграет назад к 30 - обломитесь)) Я с 800 р/ч в 2015 году поднял до 1000р/ч, и в 2016 году поднял до 1200р/ч. и нисколько сейчас не сожалею. Спрос на услуги не упал. Но мне как фрилансеру-одиночке трудно судить. Я беру пару-тройку заказчиков и веду по ним работу. В основном поддержка, новых сайтов почти не было. С парой заказчиков пришлось распрощаться, физически не успевал с ними работать. Кто как поживает? Ау!))
Съэкономлю вам пару часов времени. Если вы решили обновлять Битрикс на последнюю версию и у вас кэширование использует memcached. То перед обновлением отключите его. Иначе получите кучу проблем:
в процессе обновления получите вот такую ошибку Ошибка соединения с сервером обновлений: [0] php_network_getaddresses: getaddrinfo failed: Name or service not known. Нет соединения с сервером обновлений. При этом коннект на внешние ресурсы идет нормально, и bitrix_server_test.php не выдает ошибок.
шаблон сайта не подключен к сайту;
редактирование сайта в админке недоступно;
не работают все формы сайта из-за непрохождения check_bitrix_sessid();
права доступа к разделам и файлам сбились.
Не знаю чего они там в коде нагородили, но отключение мемкэша помогает только нормально обновиться. Доступы к файлам и разделам по прежнему останутся нерабочими при включенном мемкеше. Пришлось его временно отрубить. В техподдержке о проблеме знают. Решение выйдет в обновлении 16.5.4.
чесно говоря тех.поддрежка просто не хочет работать, для того что исправить верстку в публичной части мессенжера, в админке она "как то случайно сама получилась, хотя и не должна была" понадобилось.
1. примерно 4 месяца 2. 29 сообщений в ветке обращения в тех поддрежку 3. пять раз сказать что исправлено, хотя ничего не было сделано 4. 7 модификация модуля im 16.1.0 -> 16.1.7 5. общение руководителем службы тех поддержки (тоже бестолку)
Писал импорт каталога для одного сайта. Начал тестировать и удивился сильным тормозам: скорость примерно в 1 элемент инфоблока в секунду. Начал было думать, что хостинг никудышный, но нет. При ковырянии кода напоролся на такое вот "замечательное" решение из маркетплейса, именуемое "Список 2.0". http://marketplace.1c-bitrix.ru/solut...ipol.auen/ Убивает обмен моментально ))
Сортировка вариантов списка происходит на КАЖДУЮ установку значения элемента инфоблока. В результате этого "гениального" решения, при N вариантах значений списка и M товаров, количество запросов на обновление одного такого свойства у всех товаров будет не M, а M*N! Точнее даже не M*N, а M*N*2, т.к. еще есть дополнительный запрос сброса кэша по тэгу. А если таких свойств несколько (у клиента их было с десяток), то будет полный бздец. В общем, ребята, не надо так делать. При разработке свойств учитывайте, что есть не только интерфейсная часть свойства в админке, но и разного рода взаимодействия через API. Всем доброго утра понедельника
Без поиска этой галочки я и по двум указанным строчкам кода видел, что есть возможность отключить сортировку. Но решение уже себя скомпрометировало. Ковыряться в нем, выискивая другие баги, которые потенциально могут положить обмен, я не стал. На добровольческих началах делать работу за тех, кто за это получил деньги у меня нет желания. Модуль ждет обновления.
Бедросова Юлия написал: Вообще, я думаю, что всплывший факт, о том, что автосортировка значений Списка 2.0 была опциональна - это серьезный повод для того, чтобы Антон Пилецкий принес разработчикам решения публичные извинения. Однако на такой шаг способны только зрелые личности.
А я считаю, что даже если фича опциональна и отключается простой галочкой, то она ни в коем разе не должна сказываться отрицательным образом на работе сайта. Можете считать меня незрелой личностью, ваше право.
Забродин Роман написал: гнев этого человека возникший в следствии его собственных странных ожиданий
У меня такое подозрение, что человеку попросту впарили коробочное решение, не объяснив толком что к чему. Отсюда и возникли эти странные ожидания. Кстати разработчик этого коробочного решения уже канул в лету и передает привет из Шри-Ланки! Называть его не буду, а то опять скажете, что я злой и несправедливый))
Лично я бы Антону спасибо сказал, если бы он в моем модуле нашел подобный изъян, без разницы, где об этом написали, в блоге, в отзывах или лично, т.к. это + к качеству моего продукта, экономия моего времени, ну и опыт другого разработчика будет полезен каждому. Все правильно подмечено, кто-то пишет модуль, тестирует его как надо, заботится о его качестве, а кто-то пишет ..овно ради наживы, впарить и забить на человека с его проблемами, а это очень-очень неуважительно к клиенту и просто некрасиво. Мне если пишут о баге в модуле, я открываю PHPStorm, ищу и исправляю ошибку и искренне благодарю человека за сообщение об ошибке и помощь, накасячил, исправляю за свой счет, очень полезно, мотивирует, а не хочешь исправлять, вот и получай...
Именно так мне сегодня ответила ТП Битрикса на сообщение о баге в обфускаторе Битрикса, который используется для демо-режима модулей маркетплейса. Суть в чём. В модуле был создан файл "include.php" содержащий только два символа "<?". По правилам написания PHP-скриптов это допустимо ( http://php.net/manual/ru/language.bas...hptags.php ). Файл include.php я оставил, чтобы формально соответствовать структуре модуля описанной здесь - http://dev.1c-bitrix.ru/learning/cour...ON_ID=2823 Сам же модуль работает по идеологии D7, все классы подрубаются автоматом. Я был удивлен, когда от клиентов начали приходить багрепорты с одним и тем же типом ошибки:
PHP Parse error: syntax error, unexpected '<' in /home/site/public_html/bitrix/modules/yeti.picloader/include.php on line 1
Там же нет кода! Только потом я сообразил, что дело не в коде модуля, а именно в обфускаторе. Попробовал заменить на код:
<?php
// do nothing
?>
И действительно. Все заработало как надо. Написал об ошибке в саппорт, на что был получен ответ, вынесенный в заголовок. Но как так-то? Ведь даже в ядре используются обычные тэги - http://i.imgur.com/o1eEqqL.png . Да и не в форме открывающего тэга дело, а в наличии закрывающего. Всё это навевает сомнения в компетентности техподдержки, либо они просто не хотят трогать код обфускатора. По моему убеждению, обфускатор должен съедать любой синтаксис описанный в документации. В общем, я к чему это. Не я один напоролся на этот баг. Решение от коллег DEFA Tools так же при установке в демо-режиме валит сайт. Я им об этом написал. Советую и вам проверить свои решения на установку в демо-режиме, если у вас в include.php нет закрывающего тэга.
ну тут да.. в пустом файле смысла то мало (триал режим же, надо кудато вынести секретке)... Я просто обычно в модулях делаю этот файл пустым (он просто в обязательном должен присутствовать).
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».