Size: a a a

2020 December 08

AS

Artur Sabirov in graalvm_ru
Ищу способ как пошустрее файлы > 10gb в сокет запихнуть, может апихи какие новые появились
источник

AS

Artur Sabirov in graalvm_ru
@shelajevoleg было бы круто, если б канал по панаме появился )
источник

A

Alex in graalvm_ru
Artur Sabirov
Ищу способ как пошустрее файлы > 10gb в сокет запихнуть, может апихи какие новые появились
Nio и вперёд, они там через sendfile вроде как должны оптимизироваться
источник

DK

Dmitriy Kovalenko in graalvm_ru
Artur Sabirov
Ищу способ как пошустрее файлы > 10gb в сокет запихнуть, может апихи какие новые появились
io_uring?
источник

A

Alex in graalvm_ru
Зачем там мемори сегмент?
источник

AS

Artur Sabirov in graalvm_ru
файл как mmap поднимать вроде
источник

AS

Artur Sabirov in graalvm_ru
MemorySegment.mapFile(sample, 0, Files.size(sample), FileChannel.MapMode.READ_ONLY)
источник

DK

Dmitriy Kovalenko in graalvm_ru
для больших файлов лучше mmap наверное и не придумать
источник

AS

Artur Sabirov in graalvm_ru
Спасибо! Почитаю
источник

A

Alex in graalvm_ru
источник

A

Alex in graalvm_ru
Dmitriy Kovalenko
для больших файлов лучше mmap наверное и не придумать
Ну вроде как sendfile быстрее должен быть, так как даже контекст свича нету
источник

A

Alex in graalvm_ru
А с mmap есть нюанс что unmap как таковое в паблик интерфейсе отсутствует, поэтому может быть больно
источник

AS

Artur Sabirov in graalvm_ru
я поэтому и смотрю на новый api MemorySegment, он AutoCloseable
источник

A

Alex in graalvm_ru
Ну я бы начал с transferTo, и уже потом ммеп исследовал
источник

AS

Artur Sabirov in graalvm_ru
Спасибо
источник

A

Alex in graalvm_ru
там же на уровне top будет видно где проводит основное время в system или user space
источник

AS

Artur Sabirov in graalvm_ru
про zero copy и забыл
источник

AS

Artur Sabirov in graalvm_ru
потом возможно понадобится ещё по http отсылать, а не просто в сокет
источник

AS

Artur Sabirov in graalvm_ru
и смотрю что из MemorySegment можно из слайсов NativeByteBuffer получать
источник

AS

Artur Sabirov in graalvm_ru
и это уже можно удобному клиенту какому нибудь типа Spring WebClient отдать (Flux<ByteBuffer>)
источник