Size: a a a

2021 June 24

W

Warstone in Modern::Perl
https://docs.mojolicious.org/Mojo/IOLoop

Вот тут посмотри
источник

М

Млюшевый Пишка... in Modern::Perl
уже смотрю )
источник

b

basiliscos in Modern::Perl
Ну на всякий случай ещё

https://metacpan.org/pod/UniEvent::HTTP::UserAgent

есть
источник

М

Млюшевый Пишка... in Modern::Perl
это http, у меня будет просто текстовой протокол, для максимальной скорости
источник

b

basiliscos in Modern::Perl
для макс. скорости надо бинарный использовать
источник

c

crux in Modern::Perl
О, ты вовремя, для максимальной скорости - протобаф ))
источник

a

allter in Modern::Perl
А вот если у вас продюсеры одновременно могут быть консумерами, то ситуация сложнее. Проще всего, если при этом на время раскладки можно обрабатывать данные как с дополнительной информацией, так и без него - просто делаем кодек с поддержкой опционального поля. И при этом продюсеры сразу начинают писать дополнительную инфу, но только те консумеры, которые запущены с новой версией эту инфу используют.

И ещё есть вариант с конфигурационной ручкой для включения новой версии.
источник

b

basiliscos in Modern::Perl
flatbuf говорят быстрей (сам не мерял)
источник

М

Млюшевый Пишка... in Modern::Perl
быстрее чем print $sock "get id:34;b:mac;t:somwhat" ?
источник

c

crux in Modern::Perl
Ну по идее да, должно быть быстрее.
источник

c

crux in Modern::Perl
хотя бы потому, что не будет имён полей
источник

c

crux in Modern::Perl
и разбора сплитами
источник

М

Млюшевый Пишка... in Modern::Perl
сериализация объекта и его десериализация быстрее простого текста? я померяю ))
источник

МС

Мастер Спирта... in Modern::Perl
технически простой текст - это сериализованный объект, а обработка этого текста при получении - та же десериализация
источник

М

Млюшевый Пишка... in Modern::Perl
как интересно, смотри
package AsyncTargeter::Server;

use strict;
use warnings;
use base qw(Net::Server::PreFork);

sub process_request {
   my $self = shift;
   while (<STDIN>) {
       chomp;
       print "Hello!\n";
   }
}


клиент
my $id = Mojo::IOLoop->client({port => 20204} => sub  {
 my ($loop, $err, $stream) = @_;

 $stream->on(read => sub {
   my($stream, $bytes) = @_;
   # Process input
   say "Input: $bytes";
   $loop->stop;
 });

 # Write request
 $stream->write("GET / HTTP/1.1\x0d\x0a\x0d\x0a");
});

Mojo::IOLoop->start unless Mojo::IOLoop->is_running;

выводит
Input: Hello!
Hello!
источник

М

Млюшевый Пишка... in Modern::Perl
как так то? )
источник

YK

Yegor K in Modern::Perl
иногда pack/unpack is good enough
источник

М

Млюшевый Пишка... in Modern::Perl
точно!
источник

М

Млюшевый Пишка... in Modern::Perl
спасибо )
источник

W

Warstone in Modern::Perl
А кто 2й раз Hello пишет?
источник