Я пишу сетевой прототип, где Server передает состояние World ко всем своим Clients. Я делаю это, используя следующий рабочий процесс:
Server --> World --> show --> ByteString --> GZip.compress --> udp send
Client <-- World <-- read <-- ByteString <-- GZip.decompress <-- udp receive
Однако, похоже, что show и read являются узкими местами производительности - большую часть времени занимают. По мере роста World это будет только большой проблемой.
Я знаю, что в какой-то момент мне придется прекратить отправлять весь мир, но есть ли альтернативы использованию read и show для преобразования структуры данных в ByteString?