Пример #1
0
        public void ProduceSize()
        {
            int   partitions     = 1;
            short version        = 0;
            byte  messageVersion = 0;

            var results = new List <object>();

            foreach (var codec in new[] { MessageCodec.None, MessageCodec.Gzip, MessageCodec.Snappy })
            {
                foreach (var messages in new[] { 100, 10000 })
                {
                    foreach (var messageSize in new[] { 1, 1000 })
                    {
                        foreach (var level in new[] { CompressionLevel.Fastest })
                        {
                            Compression.ZipLevel = level;
                            var request = new ProduceRequest(
                                Enumerable.Range(1, partitions)
                                .Select(partitionId => new ProduceRequest.Topic(
                                            "topic",
                                            partitionId,
                                            Enumerable.Range(1, messages)
                                            .Select(i => new Message(GenerateMessageBytes(messageSize), new ArraySegment <byte>(), 0, version: messageVersion)),
                                            codec)));

                            var result = new {
                                Codec       = codec.ToString(),
                                Level       = codec == MessageCodec.None ? "-" : level.ToString(),
                                Messages    = messages,
                                MessageSize = messageSize,
                                Bytes       = request.ToBytes(new RequestContext(1, version)).Count
                            };
                            results.Add(result);
                        }
                    }
                }
            }

            WriteResults(results);
        }
 public ArraySegment <byte> Encode()
 {
     return(_request.ToBytes(new RequestContext(1, Version)));
 }