Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 3924 Просмотров
*

Seganapa

  • Захожу иногда
  • 53
  • 0 / 0
Всем здравствуйте!
Никак не получается выровнять картинку в таблице по вертикали.

Вот что получается:


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

Вот код таблицы:
Код
<table border="0">
<tbody>
<tr>
<td style="background-color: #ffffff;" valign="middle"><img alt="phone_gray2_qwa" height="70" width="70" src="images/stories/phone_gray2_qwa.png" style="vertical-align: middle;" /></td>
<td style="background-color: white;"><span style="font-size: 14pt;">Простой текст</span></td>
</tr>
</tbody>
</table>
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Re: Выровнять изображение в таблице
« Ответ #1 : 21.02.2011, 16:15:56 »
Код
<td style="background-color: #ffffff; height: 70px; width: 70px;" valign="middle">
<td style="background-color: white; height: 70px;">
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Seganapa

  • Захожу иногда
  • 53
  • 0 / 0
Re: Выровнять изображение в таблице
« Ответ #2 : 21.02.2011, 16:36:36 »
Че-то все равно не получается! В чем может быть причина?
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Re: Выровнять изображение в таблице
« Ответ #3 : 21.02.2011, 16:42:20 »
ссылка на сайт есть?
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Seganapa

  • Захожу иногда
  • 53
  • 0 / 0
Re: Выровнять изображение в таблице
« Ответ #4 : 21.02.2011, 16:44:27 »
Сайт на локальном хостинге. Думал может в CSS где-нибудь отступы, найти не смог.
Код
body
{
font-family:arial;
font-size: 11pt;
background:url(../images/body_bg.jpg);
color: #333333;
margin:0px;
}

h1,h2,h3,p
{
margin:0px;
padding:0px;
}

a,a:visited
{
color: #370f0f;
}

#main
{
width:1070px;
margin:0px auto;
}
/* Outer */

#outer
{
margin: 0em auto 1em auto;
width: 100%;
background-color: #fff;
}

/* Header */

#header
{
background:url(../images/header_bg.jpg) no-repeat 150px;
height:337px;
}

#header h1
{
font-size: 2.9em;
font-family:"Trebuchet MS";
}

#header h1, #header h2
{
display: block;
margin: 0em auto;
}

#header h1 a
{
color: #370f0f;
text-decoration: none;
}

#header h2
{
color: #370f0f;
font-size: 0.8em;
}

/* Menu */

#menu
{
padding: 0.4em 2em 1em 0em;
background:url(../images/nav_bg.jpg) repeat-x top;
overflow:hidden;
height:25px;
}

#menu ul
{
margin: 0em auto;
list-style: none;
width:700px;
float:left;
overflow:hidden;
}

#menu li
{
display: inline;
}

#menu li a
{
color: #38271C;
font-weight: bold;
text-decoration: none;
padding: 0.25em 1.4em 0.25em 1.4em;
}

#menu li a:hover
{
color: #762e0b;
}

/* Content */

#content
{
margin-top:15px;
font-size:0.9em;
}

#content p
{
margin-bottom: 5px !important;
text-align: justify;
}

#content h2,h3,h4,h5,h6
{
color: #443333;
margin:0px;
padding:0px;
margin-bottom: 1em;
}

#content ul
{border: 1px solid #978155;

background: #D7C08E;
margin:10px;
padding: 10px;
}

#content blockquote
{
padding-left: 1em;
margin-bottom: 1.5em;
border-left: solid 7px #EFEECC;
}

#content blockquote p
{
margin-bottom: 0em;
}



/* Primary Content */

#primaryContentContainer
{
float:left;
width:840px;
background:url(../images/content_bg.gif) repeat-y;
margin-left:24px;
}
#primaryContentContainer a, #primaryContentContainer a:visited
{

text-decoration:underline;
}
#primaryContentContainer a:hover
{
text-decoration:none;
color:#762e0b;
}
.primaryContentTop
{
background:url(../images/content_top.gif) no-repeat top ;
padding-top:20px;
padding-left:18px;
}
#primaryContent
{

padding: 1.5em;
padding-right:3em;
}

#primaryContent h2, #primaryContent h3
{
border-bottom: solid 1px #333333;
padding-bottom: 0.25em;
margin-bottom: 1.25em;
}
#primaryContent h3
{
margin-bottom:0.5em !important;
width:50%;
}

#primaryContent h2
{
font-size: 1.7em;
}

#primaryContent h3
{
font-size: 1.1em;
}

/* Secondary Content */
#left_content
{
width:200px;
float:left;
background:#C9B389;
padding-bottom:10px;
border: 1px solid #978155; /* Толщина рамки в пикселах, тип границы (в данном случае сплошная линия) и цвет линии */

}
#left_content h3
{
background:url('../images/sidebar_title_bg.jpg') no-repeat;
color: #000;
font-size: 1.3em;
padding-top:4px;
padding-bottom:4px;
width:200px;
text-align:center;
}
#left_content a, #left_content a:visited
{
color:#222222;
text-decoration:none;
background:url(../images/arrow.jpg) no-repeat left;
padding-left:13px;
}
#left_content a:hover
{
color:#692301;
text-decoration:underline;
}
#secondaryContent
{
float: right;
width:200px;
background:#978155;
padding-bottom:15px;
}

#secondaryContent h3
{
background:url('../images/sidebar_title_bg.jpg') no-repeat;
color: #000;
font-size: 1.3em;
padding-top:4px;
padding-bottom:4px;
width:200px;
text-align:center;
}
.bannerheader
{
font-weight:bold;
margin-top:15px;
margin-bottom:8px;
}
.banneritem_text, .bannerfooter_text
{
margin-left:10px;
margin-bottom:8px;
}
/* Footer */

#footer
{
padding: 1.5em 2em 1.5em 2em;
text-align: center;
margin: 0em auto;
font-size: 0.9em;
}

.clear
{
clear: both;
}
.nopad
{
width:95%;
margin-left: 21px;
}
.componentheading
{
font-weight:bold;
font-size: 14pt;
color:black;
border: 1px solid #978155; /* Толщина рамки в пикселах, тип границы (в данном случае сплошная линия) и цвет линии */
padding: 5px; /* Расстояние от текста до рамки */
background-color: #A69575;
width:50%;
margin-bottom:10px;
padding-left:15px;
width:95%;
}
.contentheading
{
font-size: 1.5em !important;
padding-top:4px;
padding-bottom:4px;
width:200px;
text-align:center;
font-weight:bold;
color:#330000;
}
.contentpaneopen
{
margin-bottom:15px;
width: 100%;

}
.small
{
font-size:0.8em;
}
form
{
margin:0px;
padding:0px;
}
ul,li
{
margin:0px;
padding:0px;
list-style:none;
}
#left_content li
{
margin-top:3px !important;
}
.input
{
margin:0px;
padding:0px;
padding-left:10px;
}
img
{
margin:5px;
margin-top:0px;
}
a img
{
border:none;
}
.modifydate
{
padding-bottom:10px !important;
font-size:0.8em;
}
.createdate
{
font-size:0.8em;
}
a.readon
{
color:#fff;
text-decoration:none !important;
background:url(../images/a4.gif) repeat-x;
padding:4px;
font-weight:bold;
background:#000;
}
a.readon:hover
{
color:#fdfdfd;
color:#333;
}
.contentpaneopen
{

margin-right:15px;
border:solid 1px #978155;
background:#a69575;
padding-left:10px;
padding-right:10px;
}
.contentpaneopen td
{

}
.article_separator
{
height:20px;
}
.latest
{
width:95%;
}
div#maindivider {
  height:20px;
}
.latest li
{
margin-top:7px;
margin-left:0px !important;
}
.latest li a, .latest li a:visited
{
color:#555555 !important;
background:url(../images/arrow.gif) no-repeat left;
padding-left:20px;
}
.latest li a:hover
{
color:#000 !important;
text-decoration:underline;
}
.user1user2
{
border:solid 1px #978155;
background:#d7c08e;
padding:10px;
padding-left:20px;
margin-right:30px;
}
.moduletable
{
padding-top:10px;
padding-bottom:10px;
}
.moduletable h3
{
margin-bottom:5px;
}
.sectiontableentry2, .sectiontableentry1
{
padding-top:5px;
}
.pollstableborder
{
margin-left:10px;
}
.bannerheader
{
padding-left:10px;
}
fieldset, form
{
border:none;
}
.search_box
{
float:right;
padding-right:20px;
margin-top:-2px;
}
.proba
{
font-size: 14pt;
color:#443333;
border: 1px solid #978155; /* Толщина рамки в пикселах, тип границы (в данном случае сплошная линия) и цвет линии */
padding: 5px; /* Расстояние от текста до рамки */
background-color: #C9B389;
}
.proba2
{
font-weight:bold;
font-size: 12pt;
color:#443333;
border: 1px solid #978155; /* Толщина рамки в пикселах, тип границы (в данном случае сплошная линия) и цвет линии */
padding: 5px; /* Расстояние от текста до рамки */
background-color: #C9B389;

}
.contentdescription
{
margin-right:2%
}
.proba3
{
font-weight:bold;
font-size: 12pt;
color:Black;
border: 1px solid #978155; /* Толщина рамки в пикселах, тип границы (в данном случае сплошная линия) и цвет линии */
padding: 5px; /* Расстояние от текста до рамки */
background-color: #A69575;

}
*

Seganapa

  • Захожу иногда
  • 53
  • 0 / 0
Re: Выровнять изображение в таблице
« Ответ #5 : 21.02.2011, 17:01:01 »
Нашел в css:
Код
img
{
margin:5px;
margin-top:0px;
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Изображение-ссылка в материале

Автор Omedius

Ответов: 4
Просмотров: 2493
Последний ответ 02.07.2017, 21:11:10
от vipiusss
Модуль "Случайное изображение"

Автор irina 4444

Ответов: 16
Просмотров: 8578
Последний ответ 26.05.2017, 12:47:56
от gvg
Вставить изображение на сайт

Автор Dexter_ams

Ответов: 4
Просмотров: 2346
Последний ответ 02.04.2015, 18:14:32
от buhhun
Изображение в тексте

Автор Лучик

Ответов: 5
Просмотров: 1457
Последний ответ 23.01.2015, 22:29:33
от Лучик
Как выровнять заголовки страниц по центру и увеличить

Автор artruslan

Ответов: 14
Просмотров: 4181
Последний ответ 04.12.2014, 21:06:48
от Shustry