#include #include #include #include #include "cbor.h" static void* cbor_alloc_bin(void *context, ulong size) { return binalloc((Bin**)context, size, 0); } static void cbor_free_bin(void *context, void *ptr) { USED(context); USED(ptr); return; } void benchmallocfree(B *b) { int i; for(i = 0; i < b->N; i++) { free(malloc(4096)); } benchbytes(b, 4096); } unsigned char corpus[3221] = { 0xD9,0xD9,0xF7,0xA3,0x66,0x66,0x6C,0x6F,0x61,0x74, 0x73,0x99,0x01,0x1B,0xFB,0x40,0x08,0xCC,0xCC,0xCC, 0xCC,0xCC,0xCD,0xFB,0x40,0x09,0x99,0x99,0x99,0x99, 0x99,0x9A,0xFB,0x40,0x0A,0x66,0x66,0x66,0x66,0x66, 0x67,0xFB,0x40,0x0B,0x33,0x33,0x33,0x33,0x33,0x34, 0xFB,0x40,0x0C,0x00,0x00,0x00,0x00,0x00,0x01,0xFB, 0x40,0x0C,0xCC,0xCC,0xCC,0xCC,0xCC,0xCE,0xFB,0x40, 0x0D,0x99,0x99,0x99,0x99,0x99,0x9B,0xFB,0x40,0x0E, 0x66,0x66,0x66,0x66,0x66,0x68,0xFB,0x40,0x0F,0x33, 0x33,0x33,0x33,0x33,0x35,0xFB,0x40,0x10,0x00,0x00, 0x00,0x00,0x00,0x01,0xFB,0x40,0x10,0x66,0x66,0x66, 0x66,0x66,0x67,0xFB,0x40,0x10,0xCC,0xCC,0xCC,0xCC, 0xCC,0xCD,0xFB,0x40,0x11,0x33,0x33,0x33,0x33,0x33, 0x33,0xFB,0x40,0x11,0x99,0x99,0x99,0x99,0x99,0x99, 0xFB,0x40,0x11,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB, 0x40,0x12,0x66,0x66,0x66,0x66,0x66,0x65,0xFB,0x40, 0x12,0xCC,0xCC,0xCC,0xCC,0xCC,0xCB,0xFB,0x40,0x13, 0x33,0x33,0x33,0x33,0x33,0x31,0xFB,0x40,0x13,0x99, 0x99,0x99,0x99,0x99,0x97,0xFB,0x40,0x13,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFD,0xFB,0x40,0x14,0x66,0x66,0x66, 0x66,0x66,0x63,0xFB,0x40,0x14,0xCC,0xCC,0xCC,0xCC, 0xCC,0xC9,0xFB,0x40,0x15,0x33,0x33,0x33,0x33,0x33, 0x2F,0xFB,0x40,0x15,0x99,0x99,0x99,0x99,0x99,0x95, 0xFB,0x40,0x15,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFB, 0x40,0x16,0x66,0x66,0x66,0x66,0x66,0x61,0xFB,0x40, 0x16,0xCC,0xCC,0xCC,0xCC,0xCC,0xC7,0xFB,0x40,0x17, 0x33,0x33,0x33,0x33,0x33,0x2D,0xFB,0x40,0x17,0x99, 0x99,0x99,0x99,0x99,0x93,0xFB,0x40,0x17,0xFF,0xFF, 0xFF,0xFF,0xFF,0xF9,0xFB,0x40,0x18,0x66,0x66,0x66, 0x66,0x66,0x5F,0xFB,0x40,0x18,0xCC,0xCC,0xCC,0xCC, 0xCC,0xC5,0xFB,0x40,0x19,0x33,0x33,0x33,0x33,0x33, 0x2B,0xFB,0x40,0x19,0x99,0x99,0x99,0x99,0x99,0x91, 0xFB,0x40,0x19,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFB, 0x40,0x1A,0x66,0x66,0x66,0x66,0x66,0x5D,0xFB,0x40, 0x1A,0xCC,0xCC,0xCC,0xCC,0xCC,0xC3,0xFB,0x40,0x1B, 0x33,0x33,0x33,0x33,0x33,0x29,0xFB,0x40,0x1B,0x99, 0x99,0x99,0x99,0x99,0x8F,0xFB,0x40,0x1B,0xFF,0xFF, 0xFF,0xFF,0xFF,0xF5,0xFB,0x40,0x1C,0x66,0x66,0x66, 0x66,0x66,0x5B,0xFB,0x40,0x1C,0xCC,0xCC,0xCC,0xCC, 0xCC,0xC1,0xFB,0x40,0x1D,0x33,0x33,0x33,0x33,0x33, 0x27,0xFB,0x40,0x1D,0x99,0x99,0x99,0x99,0x99,0x8D, 0xFB,0x40,0x1D,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xFB, 0x40,0x1E,0x66,0x66,0x66,0x66,0x66,0x59,0xFB,0x40, 0x1E,0xCC,0xCC,0xCC,0xCC,0xCC,0xBF,0xFB,0x40,0x1F, 0x33,0x33,0x33,0x33,0x33,0x25,0xFB,0x40,0x1F,0x99, 0x99,0x99,0x99,0x99,0x8B,0xFB,0x40,0x1F,0xFF,0xFF, 0xFF,0xFF,0xFF,0xF1,0xFB,0x40,0x20,0x33,0x33,0x33, 0x33,0x33,0x2C,0xFB,0x40,0x20,0x66,0x66,0x66,0x66, 0x66,0x5F,0xFB,0x40,0x20,0x99,0x99,0x99,0x99,0x99, 0x92,0xFB,0x40,0x20,0xCC,0xCC,0xCC,0xCC,0xCC,0xC5, 0xFB,0x40,0x20,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFB, 0x40,0x21,0x33,0x33,0x33,0x33,0x33,0x2B,0xFB,0x40, 0x21,0x66,0x66,0x66,0x66,0x66,0x5E,0xFB,0x40,0x21, 0x99,0x99,0x99,0x99,0x99,0x91,0xFB,0x40,0x21,0xCC, 0xCC,0xCC,0xCC,0xCC,0xC4,0xFB,0x40,0x21,0xFF,0xFF, 0xFF,0xFF,0xFF,0xF7,0xFB,0x40,0x22,0x33,0x33,0x33, 0x33,0x33,0x2A,0xFB,0x40,0x22,0x66,0x66,0x66,0x66, 0x66,0x5D,0xFB,0x40,0x22,0x99,0x99,0x99,0x99,0x99, 0x90,0xFB,0x40,0x22,0xCC,0xCC,0xCC,0xCC,0xCC,0xC3, 0xFB,0x40,0x22,0xFF,0xFF,0xFF,0xFF,0xFF,0xF6,0xFB, 0x40,0x23,0x33,0x33,0x33,0x33,0x33,0x29,0xFB,0x40, 0x23,0x66,0x66,0x66,0x66,0x66,0x5C,0xFB,0x40,0x23, 0x99,0x99,0x99,0x99,0x99,0x8F,0xFB,0x40,0x23,0xCC, 0xCC,0xCC,0xCC,0xCC,0xC2,0xFB,0x40,0x23,0xFF,0xFF, 0xFF,0xFF,0xFF,0xF5,0xFB,0x40,0x24,0x33,0x33,0x33, 0x33,0x33,0x28,0xFB,0x40,0x24,0x66,0x66,0x66,0x66, 0x66,0x5B,0xFB,0x40,0x24,0x99,0x99,0x99,0x99,0x99, 0x8E,0xFB,0x40,0x24,0xCC,0xCC,0xCC,0xCC,0xCC,0xC1, 0xFB,0x40,0x24,0xFF,0xFF,0xFF,0xFF,0xFF,0xF4,0xFB, 0x40,0x25,0x33,0x33,0x33,0x33,0x33,0x27,0xFB,0x40, 0x25,0x66,0x66,0x66,0x66,0x66,0x5A,0xFB,0x40,0x25, 0x99,0x99,0x99,0x99,0x99,0x8D,0xFB,0x40,0x25,0xCC, 0xCC,0xCC,0xCC,0xCC,0xC0,0xFB,0x40,0x25,0xFF,0xFF, 0xFF,0xFF,0xFF,0xF3,0xFB,0x40,0x26,0x33,0x33,0x33, 0x33,0x33,0x26,0xFB,0x40,0x26,0x66,0x66,0x66,0x66, 0x66,0x59,0xFB,0x40,0x26,0x99,0x99,0x99,0x99,0x99, 0x8C,0xFB,0x40,0x26,0xCC,0xCC,0xCC,0xCC,0xCC,0xBF, 0xFB,0x40,0x26,0xFF,0xFF,0xFF,0xFF,0xFF,0xF2,0xFB, 0x40,0x27,0x33,0x33,0x33,0x33,0x33,0x25,0xFB,0x40, 0x27,0x66,0x66,0x66,0x66,0x66,0x58,0xFB,0x40,0x27, 0x99,0x99,0x99,0x99,0x99,0x8B,0xFB,0x40,0x27,0xCC, 0xCC,0xCC,0xCC,0xCC,0xBE,0xFB,0x40,0x27,0xFF,0xFF, 0xFF,0xFF,0xFF,0xF1,0xFB,0x40,0x28,0x33,0x33,0x33, 0x33,0x33,0x24,0xFB,0x40,0x28,0x66,0x66,0x66,0x66, 0x66,0x57,0xFB,0x40,0x28,0x99,0x99,0x99,0x99,0x99, 0x8A,0xFB,0x40,0x28,0xCC,0xCC,0xCC,0xCC,0xCC,0xBD, 0xFB,0x40,0x28,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xFB, 0x40,0x29,0x33,0x33,0x33,0x33,0x33,0x23,0xFB,0x40, 0x29,0x66,0x66,0x66,0x66,0x66,0x56,0xFB,0x40,0x29, 0x99,0x99,0x99,0x99,0x99,0x89,0xFB,0x40,0x29,0xCC, 0xCC,0xCC,0xCC,0xCC,0xBC,0xFB,0x40,0x29,0xFF,0xFF, 0xFF,0xFF,0xFF,0xEF,0xFB,0x40,0x2A,0x33,0x33,0x33, 0x33,0x33,0x22,0xFB,0x40,0x2A,0x66,0x66,0x66,0x66, 0x66,0x55,0xFB,0x40,0x2A,0x99,0x99,0x99,0x99,0x99, 0x88,0xFB,0x40,0x2A,0xCC,0xCC,0xCC,0xCC,0xCC,0xBB, 0xFB,0x40,0x2A,0xFF,0xFF,0xFF,0xFF,0xFF,0xEE,0xFB, 0x40,0x2B,0x33,0x33,0x33,0x33,0x33,0x21,0xFB,0x40, 0x2B,0x66,0x66,0x66,0x66,0x66,0x54,0xFB,0x40,0x2B, 0x99,0x99,0x99,0x99,0x99,0x87,0xFB,0x40,0x2B,0xCC, 0xCC,0xCC,0xCC,0xCC,0xBA,0xFB,0x40,0x2B,0xFF,0xFF, 0xFF,0xFF,0xFF,0xED,0xFB,0x40,0x2C,0x33,0x33,0x33, 0x33,0x33,0x20,0xFB,0x40,0x2C,0x66,0x66,0x66,0x66, 0x66,0x53,0xFB,0x40,0x2C,0x99,0x99,0x99,0x99,0x99, 0x86,0xFB,0x40,0x2C,0xCC,0xCC,0xCC,0xCC,0xCC,0xB9, 0xFB,0x40,0x2C,0xFF,0xFF,0xFF,0xFF,0xFF,0xEC,0xFB, 0x40,0x2D,0x33,0x33,0x33,0x33,0x33,0x1F,0xFB,0x40, 0x2D,0x66,0x66,0x66,0x66,0x66,0x52,0xFB,0x40,0x2D, 0x99,0x99,0x99,0x99,0x99,0x85,0xFB,0x40,0x2D,0xCC, 0xCC,0xCC,0xCC,0xCC,0xB8,0xFB,0x40,0x2D,0xFF,0xFF, 0xFF,0xFF,0xFF,0xEB,0xFB,0x40,0x2E,0x33,0x33,0x33, 0x33,0x33,0x1E,0xFB,0x40,0x2E,0x66,0x66,0x66,0x66, 0x66,0x51,0xFB,0x40,0x2E,0x99,0x99,0x99,0x99,0x99, 0x84,0xFB,0x40,0x2E,0xCC,0xCC,0xCC,0xCC,0xCC,0xB7, 0xFB,0x40,0x2E,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFB, 0x40,0x2F,0x33,0x33,0x33,0x33,0x33,0x1D,0xFB,0x40, 0x2F,0x66,0x66,0x66,0x66,0x66,0x50,0xFB,0x40,0x2F, 0x99,0x99,0x99,0x99,0x99,0x83,0xFB,0x40,0x2F,0xCC, 0xCC,0xCC,0xCC,0xCC,0xB6,0xFB,0x40,0x2F,0xFF,0xFF, 0xFF,0xFF,0xFF,0xE9,0xFB,0x40,0x30,0x19,0x99,0x99, 0x99,0x99,0x8E,0xFB,0x40,0x30,0x33,0x33,0x33,0x33, 0x33,0x28,0xFB,0x40,0x30,0x4C,0xCC,0xCC,0xCC,0xCC, 0xC2,0xFB,0x40,0x30,0x66,0x66,0x66,0x66,0x66,0x5C, 0xFB,0x40,0x30,0x7F,0xFF,0xFF,0xFF,0xFF,0xF6,0xFB, 0x40,0x30,0x99,0x99,0x99,0x99,0x99,0x90,0xFB,0x40, 0x30,0xB3,0x33,0x33,0x33,0x33,0x2A,0xFB,0x40,0x30, 0xCC,0xCC,0xCC,0xCC,0xCC,0xC4,0xFB,0x40,0x30,0xE6, 0x66,0x66,0x66,0x66,0x5E,0xFB,0x40,0x30,0xFF,0xFF, 0xFF,0xFF,0xFF,0xF8,0xFB,0x40,0x31,0x19,0x99,0x99, 0x99,0x99,0x92,0xFB,0x40,0x31,0x33,0x33,0x33,0x33, 0x33,0x2C,0xFB,0x40,0x31,0x4C,0xCC,0xCC,0xCC,0xCC, 0xC6,0xFB,0x40,0x31,0x66,0x66,0x66,0x66,0x66,0x60, 0xFB,0x40,0x31,0x7F,0xFF,0xFF,0xFF,0xFF,0xFA,0xFB, 0x40,0x31,0x99,0x99,0x99,0x99,0x99,0x94,0xFB,0x40, 0x31,0xB3,0x33,0x33,0x33,0x33,0x2E,0xFB,0x40,0x31, 0xCC,0xCC,0xCC,0xCC,0xCC,0xC8,0xFB,0x40,0x31,0xE6, 0x66,0x66,0x66,0x66,0x62,0xFB,0x40,0x31,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFC,0xFB,0x40,0x32,0x19,0x99,0x99, 0x99,0x99,0x96,0xFB,0x40,0x32,0x33,0x33,0x33,0x33, 0x33,0x30,0xFB,0x40,0x32,0x4C,0xCC,0xCC,0xCC,0xCC, 0xCA,0xFB,0x40,0x32,0x66,0x66,0x66,0x66,0x66,0x64, 0xFB,0x40,0x32,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0xFB, 0x40,0x32,0x99,0x99,0x99,0x99,0x99,0x98,0xFB,0x40, 0x32,0xB3,0x33,0x33,0x33,0x33,0x32,0xFB,0x40,0x32, 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xFB,0x40,0x32,0xE6, 0x66,0x66,0x66,0x66,0x66,0xF9,0x4C,0xC0,0xFB,0x40, 0x33,0x19,0x99,0x99,0x99,0x99,0x9A,0xFB,0x40,0x33, 0x33,0x33,0x33,0x33,0x33,0x34,0xFB,0x40,0x33,0x4C, 0xCC,0xCC,0xCC,0xCC,0xCE,0xFB,0x40,0x33,0x66,0x66, 0x66,0x66,0x66,0x68,0xFB,0x40,0x33,0x80,0x00,0x00, 0x00,0x00,0x02,0xFB,0x40,0x33,0x99,0x99,0x99,0x99, 0x99,0x9C,0xFB,0x40,0x33,0xB3,0x33,0x33,0x33,0x33, 0x36,0xFB,0x40,0x33,0xCC,0xCC,0xCC,0xCC,0xCC,0xD0, 0xFB,0x40,0x33,0xE6,0x66,0x66,0x66,0x66,0x6A,0xFB, 0x40,0x34,0x00,0x00,0x00,0x00,0x00,0x04,0xFB,0x40, 0x34,0x19,0x99,0x99,0x99,0x99,0x9E,0xFB,0x40,0x34, 0x33,0x33,0x33,0x33,0x33,0x38,0xFB,0x40,0x34,0x4C, 0xCC,0xCC,0xCC,0xCC,0xD2,0xFB,0x40,0x34,0x66,0x66, 0x66,0x66,0x66,0x6C,0xFB,0x40,0x34,0x80,0x00,0x00, 0x00,0x00,0x06,0xFB,0x40,0x34,0x99,0x99,0x99,0x99, 0x99,0xA0,0xFB,0x40,0x34,0xB3,0x33,0x33,0x33,0x33, 0x3A,0xFB,0x40,0x34,0xCC,0xCC,0xCC,0xCC,0xCC,0xD4, 0xFB,0x40,0x34,0xE6,0x66,0x66,0x66,0x66,0x6E,0xFB, 0x40,0x35,0x00,0x00,0x00,0x00,0x00,0x08,0xFB,0x40, 0x35,0x19,0x99,0x99,0x99,0x99,0xA2,0xFB,0x40,0x35, 0x33,0x33,0x33,0x33,0x33,0x3C,0xFB,0x40,0x35,0x4C, 0xCC,0xCC,0xCC,0xCC,0xD6,0xFB,0x40,0x35,0x66,0x66, 0x66,0x66,0x66,0x70,0xFB,0x40,0x35,0x80,0x00,0x00, 0x00,0x00,0x0A,0xFB,0x40,0x35,0x99,0x99,0x99,0x99, 0x99,0xA4,0xFB,0x40,0x35,0xB3,0x33,0x33,0x33,0x33, 0x3E,0xFB,0x40,0x35,0xCC,0xCC,0xCC,0xCC,0xCC,0xD8, 0xFB,0x40,0x35,0xE6,0x66,0x66,0x66,0x66,0x72,0xFB, 0x40,0x36,0x00,0x00,0x00,0x00,0x00,0x0C,0xFB,0x40, 0x36,0x19,0x99,0x99,0x99,0x99,0xA6,0xFB,0x40,0x36, 0x33,0x33,0x33,0x33,0x33,0x40,0xFB,0x40,0x36,0x4C, 0xCC,0xCC,0xCC,0xCC,0xDA,0xFB,0x40,0x36,0x66,0x66, 0x66,0x66,0x66,0x74,0xFB,0x40,0x36,0x80,0x00,0x00, 0x00,0x00,0x0E,0xFB,0x40,0x36,0x99,0x99,0x99,0x99, 0x99,0xA8,0xFB,0x40,0x36,0xB3,0x33,0x33,0x33,0x33, 0x42,0xFB,0x40,0x36,0xCC,0xCC,0xCC,0xCC,0xCC,0xDC, 0xFB,0x40,0x36,0xE6,0x66,0x66,0x66,0x66,0x76,0xFB, 0x40,0x37,0x00,0x00,0x00,0x00,0x00,0x10,0xFB,0x40, 0x37,0x19,0x99,0x99,0x99,0x99,0xAA,0xFB,0x40,0x37, 0x33,0x33,0x33,0x33,0x33,0x44,0xFB,0x40,0x37,0x4C, 0xCC,0xCC,0xCC,0xCC,0xDE,0xFB,0x40,0x37,0x66,0x66, 0x66,0x66,0x66,0x78,0xFB,0x40,0x37,0x80,0x00,0x00, 0x00,0x00,0x12,0xFB,0x40,0x37,0x99,0x99,0x99,0x99, 0x99,0xAC,0xFB,0x40,0x37,0xB3,0x33,0x33,0x33,0x33, 0x46,0xFB,0x40,0x37,0xCC,0xCC,0xCC,0xCC,0xCC,0xE0, 0xFB,0x40,0x37,0xE6,0x66,0x66,0x66,0x66,0x7A,0xFB, 0x40,0x38,0x00,0x00,0x00,0x00,0x00,0x14,0xFB,0x40, 0x38,0x19,0x99,0x99,0x99,0x99,0xAE,0xFB,0x40,0x38, 0x33,0x33,0x33,0x33,0x33,0x48,0xFB,0x40,0x38,0x4C, 0xCC,0xCC,0xCC,0xCC,0xE2,0xFB,0x40,0x38,0x66,0x66, 0x66,0x66,0x66,0x7C,0xFB,0x40,0x38,0x80,0x00,0x00, 0x00,0x00,0x16,0xFB,0x40,0x38,0x99,0x99,0x99,0x99, 0x99,0xB0,0xFB,0x40,0x38,0xB3,0x33,0x33,0x33,0x33, 0x4A,0xFB,0x40,0x38,0xCC,0xCC,0xCC,0xCC,0xCC,0xE4, 0xFB,0x40,0x38,0xE6,0x66,0x66,0x66,0x66,0x7E,0xFB, 0x40,0x39,0x00,0x00,0x00,0x00,0x00,0x18,0xFB,0x40, 0x39,0x19,0x99,0x99,0x99,0x99,0xB2,0xFB,0x40,0x39, 0x33,0x33,0x33,0x33,0x33,0x4C,0xFB,0x40,0x39,0x4C, 0xCC,0xCC,0xCC,0xCC,0xE6,0xFB,0x40,0x39,0x66,0x66, 0x66,0x66,0x66,0x80,0xFB,0x40,0x39,0x80,0x00,0x00, 0x00,0x00,0x1A,0xFB,0x40,0x39,0x99,0x99,0x99,0x99, 0x99,0xB4,0xFB,0x40,0x39,0xB3,0x33,0x33,0x33,0x33, 0x4E,0xFB,0x40,0x39,0xCC,0xCC,0xCC,0xCC,0xCC,0xE8, 0xFB,0x40,0x39,0xE6,0x66,0x66,0x66,0x66,0x82,0xFB, 0x40,0x3A,0x00,0x00,0x00,0x00,0x00,0x1C,0xFB,0x40, 0x3A,0x19,0x99,0x99,0x99,0x99,0xB6,0xFB,0x40,0x3A, 0x33,0x33,0x33,0x33,0x33,0x50,0xFB,0x40,0x3A,0x4C, 0xCC,0xCC,0xCC,0xCC,0xEA,0xFB,0x40,0x3A,0x66,0x66, 0x66,0x66,0x66,0x84,0xFB,0x40,0x3A,0x80,0x00,0x00, 0x00,0x00,0x1E,0xFB,0x40,0x3A,0x99,0x99,0x99,0x99, 0x99,0xB8,0xFB,0x40,0x3A,0xB3,0x33,0x33,0x33,0x33, 0x52,0xFB,0x40,0x3A,0xCC,0xCC,0xCC,0xCC,0xCC,0xEC, 0xFB,0x40,0x3A,0xE6,0x66,0x66,0x66,0x66,0x86,0xFB, 0x40,0x3B,0x00,0x00,0x00,0x00,0x00,0x20,0xFB,0x40, 0x3B,0x19,0x99,0x99,0x99,0x99,0xBA,0xFB,0x40,0x3B, 0x33,0x33,0x33,0x33,0x33,0x54,0xFB,0x40,0x3B,0x4C, 0xCC,0xCC,0xCC,0xCC,0xEE,0xFB,0x40,0x3B,0x66,0x66, 0x66,0x66,0x66,0x88,0xFB,0x40,0x3B,0x80,0x00,0x00, 0x00,0x00,0x22,0xFB,0x40,0x3B,0x99,0x99,0x99,0x99, 0x99,0xBC,0xFB,0x40,0x3B,0xB3,0x33,0x33,0x33,0x33, 0x56,0xFB,0x40,0x3B,0xCC,0xCC,0xCC,0xCC,0xCC,0xF0, 0xFB,0x40,0x3B,0xE6,0x66,0x66,0x66,0x66,0x8A,0xFB, 0x40,0x3C,0x00,0x00,0x00,0x00,0x00,0x24,0xFB,0x40, 0x3C,0x19,0x99,0x99,0x99,0x99,0xBE,0xFB,0x40,0x3C, 0x33,0x33,0x33,0x33,0x33,0x58,0xFB,0x40,0x3C,0x4C, 0xCC,0xCC,0xCC,0xCC,0xF2,0xFB,0x40,0x3C,0x66,0x66, 0x66,0x66,0x66,0x8C,0xFB,0x40,0x3C,0x80,0x00,0x00, 0x00,0x00,0x26,0xFB,0x40,0x3C,0x99,0x99,0x99,0x99, 0x99,0xC0,0xFB,0x40,0x3C,0xB3,0x33,0x33,0x33,0x33, 0x5A,0xFB,0x40,0x3C,0xCC,0xCC,0xCC,0xCC,0xCC,0xF4, 0xFB,0x40,0x3C,0xE6,0x66,0x66,0x66,0x66,0x8E,0xFB, 0x40,0x3D,0x00,0x00,0x00,0x00,0x00,0x28,0xFB,0x40, 0x3D,0x19,0x99,0x99,0x99,0x99,0xC2,0xFB,0x40,0x3D, 0x33,0x33,0x33,0x33,0x33,0x5C,0xFB,0x40,0x3D,0x4C, 0xCC,0xCC,0xCC,0xCC,0xF6,0xFB,0x40,0x3D,0x66,0x66, 0x66,0x66,0x66,0x90,0xFB,0x40,0x3D,0x80,0x00,0x00, 0x00,0x00,0x2A,0xFB,0x40,0x3D,0x99,0x99,0x99,0x99, 0x99,0xC4,0xFB,0x40,0x3D,0xB3,0x33,0x33,0x33,0x33, 0x5E,0xFB,0x40,0x3D,0xCC,0xCC,0xCC,0xCC,0xCC,0xF8, 0xFB,0x40,0x3D,0xE6,0x66,0x66,0x66,0x66,0x92,0xFB, 0x40,0x3E,0x00,0x00,0x00,0x00,0x00,0x2C,0xFB,0x40, 0x3E,0x19,0x99,0x99,0x99,0x99,0xC6,0xFB,0x40,0x3E, 0x33,0x33,0x33,0x33,0x33,0x60,0xFB,0x40,0x3E,0x4C, 0xCC,0xCC,0xCC,0xCC,0xFA,0xFB,0x40,0x3E,0x66,0x66, 0x66,0x66,0x66,0x94,0xFB,0x40,0x3E,0x80,0x00,0x00, 0x00,0x00,0x2E,0xFB,0x40,0x3E,0x99,0x99,0x99,0x99, 0x99,0xC8,0xFB,0x40,0x3E,0xB3,0x33,0x33,0x33,0x33, 0x62,0xFB,0x40,0x3E,0xCC,0xCC,0xCC,0xCC,0xCC,0xFC, 0xFB,0x40,0x3E,0xE6,0x66,0x66,0x66,0x66,0x96,0xFB, 0x40,0x3F,0x00,0x00,0x00,0x00,0x00,0x30,0xFB,0x40, 0x3F,0x19,0x99,0x99,0x99,0x99,0xCA,0xFB,0x40,0x3F, 0x33,0x33,0x33,0x33,0x33,0x64,0xFB,0x40,0x3F,0x4C, 0xCC,0xCC,0xCC,0xCC,0xFE,0x63,0x75,0x72,0x6C,0xD8, 0x20,0x72,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x65, 0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x6F,0x72,0x67, 0x67,0x73,0x71,0x75,0x61,0x72,0x65,0x73,0x99,0x01, 0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0E,0x10,0x12, 0x14,0x16,0x18,0x18,0x18,0x1A,0x18,0x1C,0x18,0x1E, 0x18,0x20,0x18,0x22,0x18,0x24,0x18,0x26,0x18,0x28, 0x18,0x2A,0x18,0x2C,0x18,0x2E,0x18,0x30,0x18,0x32, 0x18,0x34,0x18,0x36,0x18,0x38,0x18,0x3A,0x18,0x3C, 0x18,0x3E,0x18,0x40,0x18,0x42,0x18,0x44,0x18,0x46, 0x18,0x48,0x18,0x4A,0x18,0x4C,0x18,0x4E,0x18,0x50, 0x18,0x52,0x18,0x54,0x18,0x56,0x18,0x58,0x18,0x5A, 0x18,0x5C,0x18,0x5E,0x18,0x60,0x18,0x62,0x18,0x64, 0x18,0x66,0x18,0x68,0x18,0x6A,0x18,0x6C,0x18,0x6E, 0x18,0x70,0x18,0x72,0x18,0x74,0x18,0x76,0x18,0x78, 0x18,0x7A,0x18,0x7C,0x18,0x7E,0x18,0x80,0x18,0x82, 0x18,0x84,0x18,0x86,0x18,0x88,0x18,0x8A,0x18,0x8C, 0x18,0x8E,0x18,0x90,0x18,0x92,0x18,0x94,0x18,0x96, 0x18,0x98,0x18,0x9A,0x18,0x9C,0x18,0x9E,0x18,0xA0, 0x18,0xA2,0x18,0xA4,0x18,0xA6,0x18,0xA8,0x18,0xAA, 0x18,0xAC,0x18,0xAE,0x18,0xB0,0x18,0xB2,0x18,0xB4, 0x18,0xB6,0x18,0xB8,0x18,0xBA,0x18,0xBC,0x18,0xBE, 0x18,0xC0,0x18,0xC2,0x18,0xC4,0x18,0xC6,0x18,0xC8, 0x18,0xCA,0x18,0xCC,0x18,0xCE,0x18,0xD0,0x18,0xD2, 0x18,0xD4,0x18,0xD6,0x18,0xD8,0x18,0xDA,0x18,0xDC, 0x18,0xDE,0x18,0xE0,0x18,0xE2,0x18,0xE4,0x18,0xE6, 0x18,0xE8,0x18,0xEA,0x18,0xEC,0x18,0xEE,0x18,0xF0, 0x18,0xF2,0x18,0xF4,0x18,0xF6,0x18,0xF8,0x18,0xFA, 0x18,0xFC,0x18,0xFE,0x19,0x01,0x00,0x19,0x01,0x02, 0x19,0x01,0x04,0x19,0x01,0x06,0x19,0x01,0x08,0x19, 0x01,0x0A,0x19,0x01,0x0C,0x19,0x01,0x0E,0x19,0x01, 0x10,0x19,0x01,0x12,0x19,0x01,0x14,0x19,0x01,0x16, 0x19,0x01,0x18,0x19,0x01,0x1A,0x19,0x01,0x1C,0x19, 0x01,0x1E,0x19,0x01,0x20,0x19,0x01,0x22,0x19,0x01, 0x24,0x19,0x01,0x26,0x19,0x01,0x28,0x19,0x01,0x2A, 0x19,0x01,0x2C,0x19,0x01,0x2E,0x19,0x01,0x30,0x19, 0x01,0x32,0x19,0x01,0x34,0x19,0x01,0x36,0x19,0x01, 0x38,0x19,0x01,0x3A,0x19,0x01,0x3C,0x19,0x01,0x3E, 0x19,0x01,0x40,0x19,0x01,0x42,0x19,0x01,0x44,0x19, 0x01,0x46,0x19,0x01,0x48,0x19,0x01,0x4A,0x19,0x01, 0x4C,0x19,0x01,0x4E,0x19,0x01,0x50,0x19,0x01,0x52, 0x19,0x01,0x54,0x19,0x01,0x56,0x19,0x01,0x58,0x19, 0x01,0x5A,0x19,0x01,0x5C,0x19,0x01,0x5E,0x19,0x01, 0x60,0x19,0x01,0x62,0x19,0x01,0x64,0x19,0x01,0x66, 0x19,0x01,0x68,0x19,0x01,0x6A,0x19,0x01,0x6C,0x19, 0x01,0x6E,0x19,0x01,0x70,0x19,0x01,0x72,0x19,0x01, 0x74,0x19,0x01,0x76,0x19,0x01,0x78,0x19,0x01,0x7A, 0x19,0x01,0x7C,0x19,0x01,0x7E,0x19,0x01,0x80,0x19, 0x01,0x82,0x19,0x01,0x84,0x19,0x01,0x86,0x19,0x01, 0x88,0x19,0x01,0x8A,0x19,0x01,0x8C,0x19,0x01,0x8E, 0x19,0x01,0x90,0x19,0x01,0x92,0x19,0x01,0x94,0x19, 0x01,0x96,0x19,0x01,0x98,0x19,0x01,0x9A,0x19,0x01, 0x9C,0x19,0x01,0x9E,0x19,0x01,0xA0,0x19,0x01,0xA2, 0x19,0x01,0xA4,0x19,0x01,0xA6,0x19,0x01,0xA8,0x19, 0x01,0xAA,0x19,0x01,0xAC,0x19,0x01,0xAE,0x19,0x01, 0xB0,0x19,0x01,0xB2,0x19,0x01,0xB4,0x19,0x01,0xB6, 0x19,0x01,0xB8,0x19,0x01,0xBA,0x19,0x01,0xBC,0x19, 0x01,0xBE,0x19,0x01,0xC0,0x19,0x01,0xC2,0x19,0x01, 0xC4,0x19,0x01,0xC6,0x19,0x01,0xC8,0x19,0x01,0xCA, 0x19,0x01,0xCC,0x19,0x01,0xCE,0x19,0x01,0xD0,0x19, 0x01,0xD2,0x19,0x01,0xD4,0x19,0x01,0xD6,0x19,0x01, 0xD8,0x19,0x01,0xDA,0x19,0x01,0xDC,0x19,0x01,0xDE, 0x19,0x01,0xE0,0x19,0x01,0xE2,0x19,0x01,0xE4,0x19, 0x01,0xE6,0x19,0x01,0xE8,0x19,0x01,0xEA,0x19,0x01, 0xEC,0x19,0x01,0xEE,0x19,0x01,0xF0,0x19,0x01,0xF2, 0x19,0x01,0xF4,0x19,0x01,0xF6,0x19,0x01,0xF8,0x19, 0x01,0xFA,0x19,0x01,0xFC,0x19,0x01,0xFE,0x19,0x02, 0x00, }; unsigned char encoded[sizeof(corpus)]; void benchdecodeencode(B *b) { int i; cbor *c; for(i = 0; i < b->N; i++){ c = cbor_decode(&cbor_default_allocator, corpus, sizeof(corpus)); assert(c != nil); assert(cbor_encode(c, encoded, sizeof(encoded))); cbor_free(&cbor_default_allocator, c); } benchbytes(b, sizeof(corpus)); } void benchdecode(B *b) { int i; Bin *bin; cbor *c; cbor_allocator *alloc; bin = nil; cbor_allocator cbor_bin_allocator = { .alloc = cbor_alloc_bin, .free = cbor_free_bin, .context = &bin, }; alloc = &cbor_bin_allocator; for(i = 0; i < b->N; i++){ c = cbor_decode(alloc, corpus, sizeof(corpus)); assert(c != nil); cbor_free(alloc, c); } benchbytes(b, sizeof(corpus)); binfree(&bin); } uchar* getbig(char *s, cbor_allocator *a, vlong *olen) { int fd; uchar *buf; vlong length; Dir *d; fd = open(s, OREAD); if(fd < 0) return nil; d = dirfstat(fd); if(d == nil){ close(fd); return nil; } length = d->length; if(olen != nil) *olen = length; free(d); buf = a->alloc(a->context, length); if(buf == nil){ close(fd); return nil; } if(readn(fd, buf, length) != length){ close(fd); a->free(a->context, buf); return nil; } close(fd); return buf; } void benchbig(B *b) { int i; vlong length; uchar *buf; Bin *bin; cbor *c; cbor_allocator *alloc; bin = nil; cbor_allocator cbor_bin_allocator = { .alloc = cbor_alloc_bin, .free = cbor_free_bin, .context = &bin, }; alloc = &cbor_bin_allocator; //alloc = &cbor_default_allocator; buf = getbig("/tmp/citylots.cbor", alloc, &length); if(buf == nil) sysfatal("getbig: %r"); benchreset(b); for(i = 0; i < b->N; i++){ c = cbor_decode(alloc, buf, length); assert(c != nil); cbor_free(alloc, c); } benchbytes(b, length); alloc->free(alloc->context, buf); binfree(&bin); } void main(int argc, char *argv[]) { ARGBEGIN{ }ARGEND benchinit(); //bench("mallocfree", benchmallocfree); //bench("decode", benchdecode); bench("big", benchbig); //bench("decodeencode", benchdecodeencode); exits(0); }