Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
batyrmastyr

batyrmastyr

  • 10
    вклад
  • 0
    вопросов
  • 23
    ответа
  • 17%
    решений
Комментарии
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Обустроить кросскомпиляцию?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Вадим Ушаков, в тест вопроса / теги )
    Я сам на сях ничего не писал лет 10, не шарю. Могу только предложить попробовать описанное в статье и особо приглядеться к упомянутому в конце Zig.
    Написано 04 февр.
  • Обустроить кросскомпиляцию?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Автор, ты бы хоть язык назвал. На сях одни грабли, на шарпе другие, на го может хватить пары переменных окружения, на джаве может вообще ничего менять не надо.
    Написано 03 февр.
  • Чем плох md5(md5($pass)) для пароля?

    batyrmastyr
    batyrmastyr @batyrmastyr
    accountnujen, чтобы никто из пользователей не пострадал есть password_hash - сам добавит соль в каждый хеш, с обновлениями пыхи перейдёт на более надёжный алгоритм. От вас требуется только иногда проверять, не пора ли обновить хеш на более надёжный через password_needs_rehash.
    Написано 27 янв.
  • Как сохранить одно подключение к RabbitMQ?

    batyrmastyr
    batyrmastyr @batyrmastyr
    3000 обращений в рамках жизни одного процесса или разных?
    В рамках жизни одного процесса объявите сервис который будет хранить соединение.

    А может всё проще и вам нужно передать keepalive = true.
    Написано 07 янв.
  • Деградация передачи данных через php stream_socket_server и неблокируемый режим?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Vitsliputsli, вы сперва скажите, чего же вы хотите от пыхи, чтобы она перестала быть идиотской:
    1) пыха вместо уже оптимизированного решения дала лишь несколько базовых кирпичиков. За это назвать тупым почти любой язык, ведь мало в каком языке есть готовые средства, например, для работы с .ods или .csv, а не базовые «прочитать из файла N байт / строку».
    2) встроенные функции языка обязаны быть оптимальными. Сколько там для Го более оптимальных библиотек для работы с JSON? Считать ли Го идиотским языком, за то, что встроенные средства неидеальны?
    3) У вас есть адекватные претензии, но я вас, гения, не понял.

    Круто, у всех все нормально, но у вас виноваты они все, а не пыха.

    Цитату пожалуйста, где я писал, что виноваты все, кроме пыхи. Я писал, что если писать код без оптимизации, то и работать он будет медленнее оптимизированного кода. Да, такое вот капитанство.

    Это забавно, как вы пытаетесь меня убедить, что нерабочее решение лучше, чем рабочее.

    Workerman не работает? Работает, не врите.
    Медленно работает? Да нет, от лучших вариантов кода на Го отстаёт всего лишь на 10%.
    Workerman не использует сокеты или stream_socket_server? Использует.
    Так что тут не работает, кроме вашей логики?

    Сокеты в php при workerman как-то иначе начинают работать и не нуждаются в файловых дескрипторах?

    Сокеты работают так же, как у всех, я вам уже раз пять писал. Задействуешь опцию reuse_port - можешь тратить на порядок-другой меньше ресурсов, как Workerman, nginx и многие другие, а не задействуешь - получишь непонятки как автор вопроса. В любом языке.

    Еще раз, Go, python, нода тоже ведь на линуксах работают.

    Ну так докажите, что они не страдают от проблем автора вопроса, но при этом не используют reuse_port. Исходники самого Го в студию.
    То, что с reuse_port пыха работает не хуже прочих я уже показал. Да, теми самыми тестами.
    Написано 02 янв.
  • Деградация передачи данных через php stream_socket_server и неблокируемый режим?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Посмотрите отличия своего кода от кода Workerman. Я, как минимум, вижу у них использование reuseport.
    Написано 01 янв.
  • Деградация передачи данных через php stream_socket_server и неблокируемый режим?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Vitsliputsli, я уже написал в чём: вы хотите фигачить код в лоб и верите, что кто-то за вас обязан его оптимизировать.
    Макось оптимизировала, фряха оптимизировала, Go оптимизировал (при этом дал своё API), линукс не стал, пыха не стала, но виновата у вас только пыха. Вы либо тогда уж и ядро линукса говном назовите, либо с пыхи глупые обвинения снимите.

    И да, она без проблем всё вытащит, если правильно ей об этом сказать (думаю найти отличия действий автора вопроса от авторов сервера вы сами сможете).
    Выступит не хуже Go если без тяжёлых вычислений.
    Написано 01 янв.
  • Деградация передачи данных через php stream_socket_server и неблокируемый режим?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Vitsliputsli,
    3ий раз, проблема только в php, в других языках ее нет

    Ещё раз, вы либо искренне заблуждаетесь, либо нагло врёте. Функции использованные автором, как и множество других, являются простейшими прослойками над вызовом системных функций и в других языках будет ровно то же самое, если открыть несколько тысяч сокетов и удерживать их. Это механика юниксов в целом.
    Отсутствие «таких» проблем в «других языках», а точнее в одном лишь Go, означает лишь то, что он втихую использует один системный сокет для получения данных от нескольких клиентов. Точно так же, как это делает nginx.
    Написано 31 дек. 2021
  • Деградация передачи данных через php stream_socket_server и неблокируемый режим?

    batyrmastyr
    batyrmastyr @batyrmastyr
    antobra, а вы не пробовали заглянуть в код Workerman? Они наверняка по вашим граблям уже проходили.
    Написано 31 дек. 2021
  • Деградация передачи данных через php stream_socket_server и неблокируемый режим?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Vitsliputsli,
    зачем мне документация nginx? Когда как я уже писал, проблема только в php, и поэтому это идиотское решение.

    Потому, что чушь пишете. Файлы на каждое соединение создаёт не php, а система, сюрприз, а задачи обкладываться костылями из-за корявостей операционки ради «задачи 10 тысяч соединений» у него пока не было.
    Написано 31 дек. 2021
  • Деградация передачи данных через php stream_socket_server и неблокируемый режим?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Vitsliputsli, опять же, отправлю к документации nginx и примечаниям по SO_REUSEPORT - есть моменты, когда можно наловить глюков.
    Убунта у rPman, цитирую
    запустил твой код (убрал echo), 1000 итераций (ubuntu 20.04) в одном потоке обрабатывает на стареньком феноме за 0.14сек
    два потока, пять потоков на итоговой скорости не сказалось
    .
    (кстати, возможно косяк из-за echo).
    Написано 31 дек. 2021
  • Деградация передачи данных через php stream_socket_server и неблокируемый режим?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Vitsliputsli, по файлу на каждое соединение — это не “идиотская реализация в PHP”, а вполне классическая юниксовая, от языка не зависящая. Можете заглянуть в соответствующие настройки nginx.
    А вот то, что на убунте проблема не возникает позволяет заподозрить кривые настройки у автора.
    Написано 30 дек. 2021
  • Nginx + php-fpm: где накапливается очередь для процессов и можно ли мониторить эту очередь?

    batyrmastyr
    batyrmastyr @batyrmastyr
    topuserman, если у вас постоянно 1000 запросов прилетает — то ничем, а если обычно прилетает 50, а иногда прилетает 1000, то можно их выстроить в очередь и разгрести секунд за 10 - 20.
    Написано 18 нояб. 2021
  • Где найти примеры качественной архитектуры на PHP?

    batyrmastyr
    batyrmastyr @batyrmastyr
    dmitriy, какой ларавель, такая и CMS на нём, а ларавель тот ещё сборник хреновых советов.
    Написано 21 окт. 2021
  • Почему не стоит передавать аргументы в функцию по ссылке?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Vitsliputsli, как минимум потому, что слишком дорого (клонирование + сбор мусора) и нужно далеко не всегда. Например, в популярных реализациях сообщений по PSR авторы считают, что нужно.
    А на что предложите заменить встроенные процедурные функции использующие ссылки?

    Большая их часть - сортировка, а остальные функции ссылки не используют.
    Когда вы работаете с огромным массивом, как вы его будете передавать?

    1) Массивы не только огромные бывают.
    2) Генераторы никто не запрещал.
    3) Разделяй и властвуй.
    4) Передача по ссылке.
    А для того чтобы "выстрелить себе в ногу" есть много возможностей

    Поэтому вы против возможности некоторые из них исключить? Или вы не заметили, что кавычки я никуда не убирал?
    Написано 30 сент. 2021
  • Почему не стоит передавать аргументы в функцию по ссылке?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Кирилл Несмеянов, он явно имел ввиду передачу объектов и в PHP (как в большинстве популярных языков) они передаются по ссылке. Правда «ужасные последствия» всё же наступают и для борьбы с ними придумали «неизменяемые объекты», да ещё и втащили readonly на уровне языка.
    Написано 30 сент. 2021
  • Самый короткий способ обработать каждый элемент массива?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Это профессиональный китайско-индусский с построчной оплатой?
    public function __invoke(string $value): string
    {
    return str_pad($value, mb_strlen($value) + $this->ellipsis->getCount(), $this->ellipsis->getChar(), STR_PAD_LEFT);
    }

    В каком месте это понятный код?
    Чёрная магия invoke, извращения с str_pad когда хватило бы str_repeat (если уж строку на вход принять не судьба).
    Написано 12 авг. 2021
  • Как добавить цвет фона в комментарий архива при упаковке через setArchiveComment?

    batyrmastyr
    batyrmastyr @batyrmastyr
    В описании стандарта я никаких упоминаний раскраски не вижу, что и неудивительно - тогда мониторы хорошо если 16 цветов отображали.
    Если хоть один просмотрщик архивов в котором это реализовано?
    Написано 29 июл. 2021
  • Как лучше организовать хранение и релевантный поиск по нескольким тегам?

    batyrmastyr
    batyrmastyr @batyrmastyr
    FanatPHP, да, он про MySQL. Он предлагает для работы с 60 тегами заводить один столбец типа ENUM, а для 200 - 4 столбца.
    Справочник тегов получится вида «тег, столбец в котором его искать», а фильтрация такой: FIND_IN_SET('тег 1', tags1) or FIND_IN_SET('тег 200', tags4).
    Как будет выглядеть ранжирование и можно ли эту портянку ускорить индексами сходу не скажу.
    Написано 22 июл. 2021
  • Какой composer-пакет и js-билиотеки нужно использовать для работы с сокетами (чат сделать)?

    batyrmastyr
    batyrmastyr @batyrmastyr
    Роми, модуль для nginx тоже стоит попробовать.
    Написано более года назад
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • Следующие →
Самые активные сегодня
  • Erghel
    Dutt Dett
    • 9 ответов
    • 1 вопрос
  • ThunderCat
    ThunderCat
    • 8 ответов
    • 0 вопросов
  • Drno
    • 8 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 7 ответов
    • 0 вопросов
  • mayton2019
    • 6 ответов
    • 0 вопросов
  • Arty_Fact
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации