Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как оптимизировать?
Форумы портала PHP.SU » » Вопросы новичков » Как оптимизировать?

Страниц (1): [1]
 

1. event - 16 Февраля, 2016 - 09:58:55 - перейти к сообщению
Написал самописный сайтик, вот сейчас начал оптимизировать кое где код, чтобы ускорить работу сайту.

Есть такой код:

PHP:
скопировать код в буфер обмена
  1. $language = explode("/", $_SERVER['REQUEST_URI']);
  2. $language = $language[1];
  3.  
  4. if($language == "ru") {
  5.         $lang = "2";
  6.         require_once(SYSTEM_DIR . "languages/lang_russian/lang_main.php");
  7. } else {
  8.         require_once(SYSTEM_DIR . "languages/lang_ukrainian/lang_main.php");
  9.         $lang = "1";
  10. }


Он узнает какой язык нужно отдать читателю. Как можно его оптимизировать?

Можно ли посадить эту часть кода на memache?
2. Мелкий - 16 Февраля, 2016 - 10:36:17 - перейти к сообщению
event пишет:
оптимизировать кое где код, чтобы ускорить работу сайту.

xdebug + kcachegrind
Всё равно не угадаете, где именно теряете время.

Здесь ускорять нечего. А вот причесать - вполне, Заменить какие-то магические строки 1 и 2 на константы. Сделать словарь значений языка и соответствующего обозначения языкового файла.
3. event - 16 Февраля, 2016 - 10:56:15 - перейти к сообщению
[quote=Мелкий]
event пишет:
Сделать словарь значений языка и соответствующего обозначения языкового файла.


Это я уже сделал.
4. TuX560 - 16 Февраля, 2016 - 11:40:46 - перейти к сообщению
для профилирования пользовался XHprof, удобно, наглядно. Профилирование PHP с XHprof
5. event - 16 Февраля, 2016 - 14:59:21 - перейти к сообщению
Есть еще такой цикл, мне кажется наговнокодил здесь. Можно что-то изменить или нормально?

PHP:
скопировать код в буфер обмена
  1. <li class="validation">
  2. <h2>Про що читати?</h2>
  3. </li>
  4. <li> <a href="/<?=$lang_two;?>/news">Усі новини</a> </li>
  5.  
  6. <?PHP
  7.  
  8. $categories_news = categories_news();
  9.  
  10. $i = 0;
  11.  
  12. foreach($categories_news as $row) {
  13.        
  14. $i++;
  15.  
  16. if($i <= 8) {
  17.         echo "<li><a href=\"#\">" . $row['name'] . "</a></li>";
  18. }
  19.  
  20. if($i == 8) {
  21.         echo "</ul>
  22. </li>
  23. <li>
  24. <ul><li class=\"validation\">
  25. <h2>...</h2>
  26. </li>";
  27. }
  28.  
  29. if($i > 8) {
  30.         echo "<li><a href=\"#\">" . $row['name'] . "</a></li>";
  31. }
  32.  
  33. } ?>
  34. </ul>
  35. </li>
  36. </ul>
  37. </li>
6. andrewkard - 16 Февраля, 2016 - 17:09:24 - перейти к сообщению
Убрать echo, foreach заменить на for (если нужен $i), в чем разница $i <= 8 и $i > 8?
Поставить отступы.

 

Powered by ExBB FM 1.0 RC1