Size: a a a

Сrystal Lang — русскоговорящее сообщество

2021 March 31

КК

Константин Крутой... in Сrystal Lang — русскоговорящее сообщество
по идеи должно быть /test вывести, нет?
источник

KK

Karim Kiatlottiavi in Сrystal Lang — русскоговорящее сообщество
нет, он же уйдет по первому условию
источник

КК

Константин Крутой... in Сrystal Lang — русскоговорящее сообщество
Понял, спасибо. Уже сам разобрался)
источник

I

Ivan in Сrystal Lang — русскоговорящее сообщество
Константин Крутой
require "http/server"

server = HTTP::Server.new do |context|
   if context.request.path != "/some"
       puts "/some"
   elsif context.request.path == "/test"
       puts "/test"
   else
       puts "!/some"
   end
end

address = server.bind_tcp 3000
server.listen
возьми Kemal, проще будет
источник

AP

Alexander Popov in Сrystal Lang — русскоговорящее сообщество
Константин Крутой
Понял, спасибо. Уже сам разобрался)
case можно использовать для подобного.
источник

DS

Damir Sharipov in Сrystal Lang — русскоговорящее сообщество
Alexander Popov
case можно использовать для подобного.
тоже хотел про case)
есть ещё опыт борьбы с heroky  websocket когда рвут соединение на бесплатке, если кому интересно выложу в gist
источник
2021 April 01

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Сделал примитивнейший вариант распаковки zip'а fiber'ами с preview_mt - теперь уже в 2.3 раза быстрее unzip'а (у меня 8-ми ядерный CPU)
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
источник

AP

Alexander Popov in Сrystal Lang — русскоговорящее сообщество
Andrey Konovalov
Сделал примитивнейший вариант распаковки zip'а fiber'ами с preview_mt - теперь уже в 2.3 раза быстрее unzip'а (у меня 8-ми ядерный CPU)
Я не сильно шарю, но Arch давно советует альтернативные много-поточные имплементации, и наверняка с ними стоит тягаться: https://wiki.archlinux.org/index.php/Makepkg#Utilizing_multiple_cores_on_compression

То есть pigz или pbzip2 или что там ещё для ZIP.
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Alexander Popov
Я не сильно шарю, но Arch давно советует альтернативные много-поточные имплементации, и наверняка с ними стоит тягаться: https://wiki.archlinux.org/index.php/Makepkg#Utilizing_multiple_cores_on_compression

То есть pigz или pbzip2 или что там ещё для ZIP.
Для zip только 7z вроде как
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Осевые потоки реально разные
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Надо будет изучить профайлинг crystal'овского кода, хочется что-нибудь оптимизировать, но пока кроме идеи избавиться вообще от канала и тупо перебирать каждым потоком один и тот же список файлов - никакие идеи в голову не приходят
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Там просто каждое чтение из канала - это блокировка, а блокировка - это явно напряжная операция
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Но если избавится от канала, придётся мириться с потенциальной гонкой между проверкой File.exists? и открытием файла на запись
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
В общем-то избавление от канала дало процентов 8-9 прироста в скорости: https://github.com/DRVTiny/crystal-by-example/blob/master/files/unzip_fiberized_min_locks.cr
источник
2021 April 02

A

Askhat in Сrystal Lang — русскоговорящее сообщество
Что-то в эликсре нет нормального AWS sdk
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Alexander Popov
Я не сильно шарю, но Arch давно советует альтернативные много-поточные имплементации, и наверняка с ними стоит тягаться: https://wiki.archlinux.org/index.php/Makepkg#Utilizing_multiple_cores_on_compression

То есть pigz или pbzip2 или что там ещё для ZIP.
p7zip в той же конфигурации (8 потоков)
real  0m0,310s
user  0m0,228s
sys  0m0,082s
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Не понимаю, это же в 2.7 раза медленнее Crystal'овской версии
источник

f

foi in Сrystal Lang — русскоговорящее сообщество
А что ты делаешь это распаковка или упаковка? И если это ЗИП то он что lzma2 поддерживает что в многопотоке (если это архивирование)?
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
foi
А что ты делаешь это распаковка или упаковка? И если это ЗИП то он что lzma2 поддерживает что в многопотоке (если это архивирование)?
Это распаковка :)
источник