Продуктивність Bitrix Старт на Proxmox і Virtuozzo 7 & Virtuozzo Storage


Тестування продуктивності Bitrix Старт на двох принципово різних платформах. Заміряти будемо за допомогою вбудованої панелі продуктивності Bitrix.

C однієї сторони, безкоштовна версія Proxmox 4.4, LXC контейнери з використанням файлової системи ZFS на SSD-дисках.

З іншого боку, ліцензійна Virtuozzo 7 CT + Virtuozzo Storage. У цьому варіанті ми використовуємо звичайні SATA диски + SSD для кеша запису і читання.

Ми враховуємо, що Virtuozzo 7 є комерційною системою, що вимагає обов'язкового ліцензування, а Proxmox 4 можна використовувати безкоштовно, але без технічної підтримки.

З цієї причини, повноцінно порівнювати дві платформи звичайно не коректно, але якщо
цікаво дізнатися як можна збільшити продуктивність сайту використовуючи одне і теж залізо, однакову конфігурацію віртуальних машин і її сервісів, то дана стаття може бути вам корисна.

Читати далі →

Кілька версій PHP на машині Windows

Вельми актуальне завдання: Мати можливість по кліку миші змінювати версію PHP на машині Windows. Раніше була подібна стаття, в якій створюється 3 копії httpd.conf. Навіщо? Коли є наипростейшее рішення.

Читати далі →

Кілька версій PHP під одним Apache на Windows (v2)

Даний туторіал нам не підійшов, тому що на фірмі діє документ, що регламентує структуру директорій на локалці, і всі сайти (близько 250) у нас лежать в одній директорії. Розумію і не втомлююся повторювати, що даний документ це повна маячня, але начальство не переконаєш. Тому виникла необхідність швидко перемикатися між версіями PHP нічого нікуди не переміщаючи, без «цих ваших денверов і опынсерверов і іншого, все має бути з коробки, прийду правэрю, інакше звільню!».

Читати далі →

Сигнали і слоти в PHP. Такі ж як в Qt. Ну майже

Сигнали і слоти — підхід, який використовується в деяких мовах програмування і бібліотеках (наприклад, Boost і Qt) який дозволяє реалізувати шаблон «спостерігач», мінімізуючи написання повторюваного коду. Концепція полягає в тому, що компонент (часто віджет) може посилати сигнали, які містять інформацію про подію (наприклад: був виділений текст «слово», була відкрита друга вкладка). У свою чергу інші компоненти можуть приймати ці сигнали за допомогою спеціальних функцій — слотів. Система сигналів і слотів добре підходить для опису Графічного інтерфейсу користувача. Також механізм сигналів/слотів може бути застосований для асинхронного введення-виведення (включаючи сокети, pipe, пристрої з послідовним інтерфейсом, ін) або повідомлення про події. В бібліотеці Qt завдяки Метаобъектному компілятору (англ.)рос. відпадає необхідність писати код реєстрації/дерегистрации/виклику, так як ці шаблонні ділянки коду генеруються автоматично.
Говорить нам Вікіпедія.
Читати далі →

PHP 7 отримає в два рази більш ефективний Hashtable


Розпочатий процес переписування ядра PHP йде семимильними кроками. Ця стаття вільний переказ поста одного з авторів коду ядра PHP про досягнуті значні успіхи в оптимізації такої структури даних, як hashtable. Більше технічних подробиць під катом.
Читати далі →

YaLinqo (LINQ to Objects для PHP) - версія 2.0

    Що-що?
 
LINQ — це штука, яка дозволяє писати запити, чимось схожі на SQL, прямо в коді. LINQ to Objects, власне, дозволяє писати запити до об'єктів, масивам і всьому тому, чим ви оперуєте в коді.
 
 Це ще навіщо?
 
Якщо у вас є база, то у вас є улюблений ORM (або улюблений голий SQL — кому як до смаку). Але іноді об'єкти приходять з веб-сервісів, з файлів, та й взагалі тьма тьмуща об'єктів може вимагати нетривіальною обробки: перетворення, фільтрація, сортування, угруповання, агрегація… Застосувати б звичний ORM або SQL — але бази-то немає. Тут на допомогу приходить LINQ to Objects, в даному випадку YaLinqo.
 
 Що вміє?
 
 
     
Найповніший порт. NET LINQ на PHP, з багатьма додатковими методами. Всього реалізовано більше 70 методів.
 Ледачі обчислення, текст виключень і багато іншого, як в оригінальному LINQ.
 Детальна документація PHPDoc до кожного методу. Текст статей адаптований з MSDN.
 100% покриття юніт-тестами.
 Коллбекі можна задавати замиканнями, «покажчиками на функцію» у вигляді рядків і масивів, строковими «Лямбда» з підтримкою декількох синтаксисів.
 ключами приділяється стільки ж уваги, скільки значенням: перетворення можна застосовувати і до тих, і до інших; більшість коллбеков приймає на вхід і те, і інше; ключі по можливості не втрачаються при перетвореннях.
 Мінімальна винахід велосипедів: для ітерації використовуються Iterator, IteratorAggregate та ін (і їх можна використовувати нарівні з Enumerable); виключення по можливості використовуються рідні похапешние і т.п.
 Підтримується Composer, є пакет на Packagist.
 Ніяких зовнішніх залежностей.
 
 Що трапилося?
 
Минув рік, як вийшов PHP 5.5 з усякими смакотою типу генераторів і виправлених ітераторів. Так як на моїй совісті самий повноцінний порт LINQ на PHP, то я вирішив, що настав час його відновити і скористатися новими фичами мови.
 
 
Читати далі →