Обратная связь по разработке

Aisamiery
На сайте с 12.04.2015
Offline
319
#151
ArbNet #:
Это может сделать только служба которая прослушивает порты принимает запросы и отвечает.

Служба это термин винды, в остальном мире это демон, программа работающая в фоне

ArbNet #:
Запуск PHP из консоли, в виртуальной машине или где ещё не обеспечит серверную работу

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

ArbNet #:
О чём вообще речь вести если люди не знают, что такое порты и как их используют.

Расскажите мне свою версию, очень интересно (на самом деле нет). А то слушать можно не только порты, но и сокеты и в вашем определение это уже не сервер, хотя если все таки вдуматься, то сервер - это программный компонент,  выполняющий сервисные (обслуживающие) функции по запросу клиента, предоставляя ему доступ к определённым ресурсам или услугам. В википедии написано достаточно неплохо определение.

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
Aisamiery
На сайте с 12.04.2015
Offline
319
#152
ArbNet #:
ЗЫ. Возможно вы не понимаете чем моё лучше вашего, а я не понимаю чем ваше лучше моего 😁

Не возможно, а абсолютно точно, и главную мысль я выделил

T7
На сайте с 19.09.2018
Offline
63
#153
ArbNet #:
и неоптимальное использование ресурсов компьютера

Так вам и показали инструмент, который непосредственно и влияет на оптимальность.

Вы даже не испробовав, пустились в рассуждение, почему этого не может быть. А она, оптимальность, очевидно, что тут есть.


php-fpm vs workerman. 6 как минимум процессов в среднем 22мб у php-fpm (дефолтные настройки, не помню pm сколько там по дефолту), против 4 в среднем 15мб. Это на задаче "хелло ворд".

<?php
echo "<b>oooooooo</b>";
exit();

vs
...
$connection->send(<b>oooooooo</b>);

При усложнении, догадаетесь, что будет оптимальней - прочитать 1 раз ваш xml или при каждом запросе?


ArbNet
На сайте с 27.10.2019
Offline
144
#154
timo-71 #:
Вы даже не испробовав, пустились в рассуждение, почему этого не может быть. А она, оптимальность, очевидно, что тут есть.

Оптимально написать службу сервера с лаконичным  обработчиком запросов\ интерпретатором языка это в идеале и уже на этом делать проект. А не приспосабливать итерируемый язык в виртуальную машину чтобы эмулировать работу сервера. Да это ускорит обработку запросов, но это неоптимальное решение ИМХО.

ЗЫ. Тот кто пишет говнокод его решение устраивает и считает его оптимальным так как не имеет достаточных знаний для написания хорошего кода.

W1
На сайте с 22.01.2021
Offline
306
#155
ArbNet #:
А не приспосабливать итерируемый язык в виртуальную машину

Виртуальная машина входит в ядро PHP. Не надо ничего приспосабливать. Оно автоматически работает.

Мой форум - https://webinfo.guru –Там я всегда на связи
T7
На сайте с 19.09.2018
Offline
63
#156
ArbNet #:
но это неоптимальное решение ИМХО

Если даже цифры не убеждают... Хозяин-барин🤪

И да, странно, что с такой логикой вы PHP выбрали, а не написали свое - оптимально😀

ArbNet
На сайте с 27.10.2019
Offline
144
#157
webinfo #:

Виртуальная машина входит в ядро PHP. Не надо ничего приспосабливать. Оно автоматически работает.

Не виртуальная машина входит в PHP, а PHP включён в виртуальную машину Zend. То есть PHP интерпретирует исходный код, а опкод который движок zend преобразует в машинный код и процессор уже выполняет нужные действия. А тут создают ещё одну ВМ чтобы постоянно была в памяти в бесконечном цикле ловила запросы потом передавала на обработку PHP.

W1
На сайте с 22.01.2021
Offline
306
#158
ArbNet #:
Не виртуальная машина входит в PHP, а PHP включён в виртуальную машину Zend. То есть PHP интерпретирует исходный код, а опкод который движок zend преобразует в машинный код и процессор уже выполняет нужные действия.

Ваши представления о PHP весьма своеобразны. И процитированное выражение несколько несвязно. Но Вы работайте, не смущайтесь.

Aisamiery
На сайте с 12.04.2015
Offline
319
#159
ArbNet #:
А тут создают ещё одну ВМ

Кто создает? Зачем создаёт? Это точно такой же код, просто архитектура и парадигма другая. Там тот же PHP используется, только не для того чтобы хмл парсить, а чтобы эффективно обрабатывать запросы от пользователя

T7
На сайте с 19.09.2018
Offline
63
#160

Ну и, все что нужно понимать по вопросу интерпретатора эмулятора над эмулятором  интерпретатора.

Все на коленке, 6 минут + 15 минут склеить скрины в гимпе.

<?php

use Workerman\Worker;

require_once __DIR__ . '/vendor/autoload.php';

$http_worker = new Worker('http://0.0.0.0:2345');
$http_worker->count = 4;

$x = file_get_contents('/home/www_data/old_centos_www/www/1c/public/1cbitrix-05c5afb2-2d4c-4453-bea7-8925c9c100ce.xml');
$x = new SimpleXMLElement($x);

$http_worker->onMessage = function ($connection, $request) use ($x) {
    $connection->send(print_r($x, 1));
};


Worker::runAll();
<?php

$x = file_get_contents('/home/www_data/old_centos_www/www/1c/public/1cbitrix-05c5afb2-2d4c-4453-bea7-8925c9c100ce.xml');

$x = new SimpleXMLElement($x);
print_r($x);

exit();

Результат:

ab -n 5000 -c 100


РПС 5,6к против 2,8к. По моему все, что было и так очевидно, стало очевидно окончательно.

ab -n 5000 -c 500  ( 500 одновременных )


php-fpm сошел с дистанции, ибо 4162 нон 200 из 5000.


Зы добалю ТОПа (больше актуально для WorkerMan, не опух ли процесс)

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                    
59719 www 20 0 472940 22936 14700 S 0,0 0,1 0:00.00 WorkerMan: master process start_file=/var/www/php_sock/app.php
59720 www 20 0 472940 16460 8204 S 0,0 0,1 0:04.70 WorkerMan: worker process none http://0.0.0.0:2345
59721 www 20 0 472940 16460 8204 S 0,0 0,1 0:04.62 WorkerMan: worker process none http://0.0.0.0:2345
59722 www 20 0 474988 17284 8340 S 0,0 0,1 0:04.58 WorkerMan: worker process none http://0.0.0.0:2345
59723 www 20 0 472940 13912 5656 S 0,0 0,1 0:04.67 WorkerMan: worker process none http://0.0.0.0:2345
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                    
50091 root 20 0 488728 33892 27608 S 0,0 0,2 0:00.20 php-fpm: master process (/etc/php-fpm.conf)
50094 www 20 0 505932 23156 15500 S 0,0 0,1 0:02.61 php-fpm: pool www
50095 www 20 0 505924 23448 15792 S 0,0 0,1 0:02.62 php-fpm: pool www
50096 www 20 0 505936 25088 17516 S 0,0 0,2 0:02.63 php-fpm: pool www
50097 www 20 0 505856 24160 16516 S 0,0 0,2 0:02.61 php-fpm: pool www
50098 www 20 0 506012 24368 16708 S 0,0 0,2 0:02.64 php-fpm: pool www
50305 www 20 0 505936 25160 17548 S 0,0 0,2 0:02.62 php-fpm: pool www
59848 www 20 0 505828 23320 15852 S 0,0 0,1 0:01.51 php-fpm: pool www
59935 www 20 0 505828 23328 15852 S 0,0 0,1 0:01.10 php-fpm: pool www
59936 www 20 0 505828 22840 15380 S 0,0 0,1 0:00.39 php-fpm: pool www
59937 www 20 0 505828 22876 15408 S 0,0 0,1 0:00.39 php-fpm: pool www  

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий