mp = require 'msgpack2'
{Packer}  = require '../src/pack'

obj = {"1nAHUtyzk7P+ZA==":[],"mQwfBfMyhwn1Hw==":{"ld7a/JEdaBS6WQ==":"p9Jklynx1MZe+NTFCNsOKUjv3KQnfLdQIaHttgxsLc7GBZKV0zjPHJE5C9iplr68ugAwyynpWxLPAMKNUtTS+E/O9Yj/zvFyYDobDoVIeu98YdLe+795lXO+bQv19uQ+E8GvoAkeaUP5vmAd0Y7Lu2Ex/aCW4SC8RyMBagl47WoYkh5GU5DPPGqyWOIY/8h6hPx+5SA/9uT8ZLCVcQdx8VsWFCyL1uxvfRJhWsFh7dd/","74OFmjyvOgruwA==":"czpizGWbRnFJY+92IXAJZgWRaBFmCP9aBKs49zoFQkmcnEmSoKKy4DNVQpL3u6RIaIvcgX0=","sGJRTRkRrrMZ1Q==":true,"91Vd/V5VEwbisQ==":{"dSloc+lr4z/n3g==":"RUFy8FBNfYLNe10dWPT96ZDvbeKT9nX/Kspj8+AxNKZLwl5Bs46MID7Vj7FR9QnFX4QsguUofwz9s3t6MZEDQV9eGetmt6heJ7S80tzazfSYSGAy+JDvRA/nbflIWPD/ORSoFbsqNvNKeITRB4wQzCFJH4q5jj2lNsqZz1m5","U1/Z/92bKoGpWg==":0.6262980568018299,"0rRtAgfa9iC9hw==":"vPt8fuAmiPVKEQxmVa8y/yD0EQl0rLmuj9DgjWgWnVstG547Irql3syKYzhQwOMUtqyQ8Ril49OfvEChllvK6IToUd6Lkf2kxqFQB1FFkvhl4M4Q","LcLM0MibE506YQ==":{"H+qozI2t+lDq7w==":true,"wDNbYci1N4jhZw==":"0j6PKAkSL6kIPCZ9ocs+ZiJwvebkKtuUxOH/+zfYBvsTIcWeov5drCcyimzDLhBbssdE1RYzkWtajbvfujbv+1zDfYuUqG5FyEHzlDMp+I6By7RhYSshWTb0fSRJ","kcB2O5U3pL3RTA==":[true,"9xsqvXy03lXQl4I/3Cc0yom6HcaxXfQBNlpxdBpSRxJV1UTM2SbjceuMdihak0uAvjXZBwnT0QRrlWZvPHjA/Lfa5M2ncuY=",204301587,"0VGDxNqz5H5KY+gy34tW2EM5f6Xv8Izm2HuKBtsC/qYDE3l0JQIPZsa5n9CfcEVtuZkrqMk/tdKzuXcC/SVqrZ7V",null],"WL5pM713AYFmiw==":"1M1W3E+ifZ7zDnV5oXkTBSwPT7/RcshqTqtgsrP+gjWeaxRBjkMKR3woVp5SGAocCCPIdOb5RXrdn/mVft41dV2MKkzcyz+LN8hLNVLRLaFyUvVces2kYS/iTSEudlh0VtB5IDFIWgR9pXCvGIfp1FSe7WW5gk+NaArxFO635S5FHi9KMExIMEtyMd4Zs4Cq5Cf81wR4RY/ZgscyItHCQpovb14suPWxmrpniY6OBXrtSw==","cGapEzunzqj6GA==":false,"43SUk6SOUGV0Yw==":{"LS0JXdVWDmz/Zg==":true,"yOpgEsm51c6kfg==":"pfxJWdD34vOf3hEyGIDdkabqRUbb3D4RhFdUvPkKXfoGv4WTL1aLDnV1nv0J89FjTHtpIi88eXbE/6wITvCAaVJ5WQ4T5aiR6scRB0XmN3XJnCuP10kL34K5yFOx90WKQk7KHAZtjkHligkBSd3psUh3kjgHjCH3X7xAkLTX0tvvWi+uanBr6I4G0pWgwM2Ehb94","gLtpYYaksgcmdg==":0.8430898117256672,"QZ+NHVpOGe0Zrg==":false,"/Vi6qzpzimTMDQ==":-1798751947,"VwPD+dTBuTNq4g==":true,"ueN4cVhiXWJjUQ==":-1048650190,"cIrg0Rb9qbo89Q==":true}},"CUM8WtWGZthCoQ==":-2.2496267049218512,"9umFYDSZNhJZxw==":-11.858740347716939,"tcZXy6IeRbTGaw==":false,"r1OPAgXzvBlSdQ==":true},"zEjiz+d/6L96rg==":null,"eRHc1vTZSej0eg==":{"vWe8aJaMMBhIHg==":-4156872889,"3GEatseRGTDygA==":0.372510522104513,"VNdKFhJXuNQpjg==":2387258420,"lyVGXqENfuAMHg==":3.349987709576274},"fcyCU9MPATpS0A==":["+7AGs7J+cr53",null,["FhfdK3zQ8JBgZ/Ogz28ODHRxj6KiOIEuj8MgdcTN4uQgtaiQmnkCbMnIYsvRZABEdEfPrz1qqDzFEhe2CTZ1D0rVdyTIKxHeYT4f01ESXjZ/+TKSnr14j520uNGV9g7HMjeMoaeBdgZl4SLustW5q0IQeYQtelB3CbM0h6k5ylKpjNJYX+2N2f5VBDTDUNDglxk0KrlH7QtEQzdX5GaFwEE=",false,[null,true,1.921448097973555,false],true,{"pQN198TscJkAjg==":null},0.447944644359473,[null,true,false,true,null,null],false,"w/9kqXt1qw93k3et+OfqG3bo6Jlug+X6PBE4lRTLCuOtdFUVNDc6arc+yDnz9a7vImZlOZ+CWA=="]],"vSAyFGr04y5LaA==":{"MkcubtDoMZRTtw==":true,"Zi2h7kJ+L60RmA==":true,"00IKNRx4/R/3Ug==":null,"tKSqdK3UTZuUSQ==":2.6885966506055894,"mC6fP4rwfdanWg==":4.3136996923908795,"psMYDeSpM0e7aQ==":true}},"JaE2oYeu9Xb0eg==":"x8cvgjIpKVCzCc13MCp/qwFJvcGXr1oLkWNU1ygFZFF16f4oT40jCFzZZ3WTBLUnrVsuImP+agv8/A7TjZ8Nprop4YBTHCR/mc0soz1ykcO5sLPxkcYhwS9TFgw4VgXwmyPbDmQ8XOx7MRQcFDCFBfrfn0PKGsSJv3Ryc/8Ywbsj/LLFy278CdJpWinq8ugGmT1MXBQSAmS+255BiA5u2pfgAggQwB+W59mdjZFbL/UoTQU=","TBxiG7iufWRGPw==":[2339803739,false,-2613588936,[],[{"k6nhEc3gcqhl+A==":2379366236,"UsDeLZSJUIYZZA==":0.30539191987859304,"FHu2X3R0Ipt8Jg==":3117861478,"WhJskh2499txrA==":null,"1r1n5PJHeKYzsA==":null,"YtNCjqm0HWCXEg==":"ybWn/3jS+7rZuwPIx2ZoP+hidSesH1HENZhMULw2Qc9f4I3mxkd4rrgh56qNT5d4RHGhagUSmCUaVlM0DQZfTC30zHlsxeUdROUlGAXIcC898hlOUpIrY6Z35Cs4qtVOPAq7yq6iLIzBCdbmpvbMVT87dH3DVYJTRDcz2V9PvPtK1PR8L4JuFQjQvUwNrxaTkC7cHFyHmMDOL7T5jnA7EAM8NYrEMqNGuMrJ4Nob+9jdOhCv5R9vInf1Un5wSA==","8enqgYHUO8lZFw==":false},"21fyx32uKPyAIOlbuavs0aaWOCR8hN6muGAGN0Bpkt2aOul1oii2anZu/M6ATkMZtq3e0c+XdBIRWs+Ib4kqKFEoAsdRblRRL+JpbxZTe1j2mCbFcpVI6NI5P/++Gy6QrJI7e8uJ+mHo9vw2yQsbfpU178Fmvnx6N05TAQ==",true,"crQ2LggH0aUjSI5KpjigJsdfZR4cchwRw4joavK0rYpMZJS/GpwGXGAFiH0IxKIbjeHj",null,null,1.9180290857250413,{"jD7vwMnSuHScPw==":2155676429,"xZuZtUW+4BH+7w==":[3.2856461390593474,"uxLN6Al9EGVtjic7/G2jOzYgaCS/0Ss7Mtgz8jkB0Q==",-2927790513,null,"J3L8icH3Myk76YXheS4jJ5dE5aZ5pw4zuPffrYl4WWsEheGUNDXbTZ+alayYDCDVZnBG0WdRtsDgFXw2njE58gQe/JTRlAs1E/42VP9rtyD79QMfrQbutd/iqzSaE3sq5o59hkCKU4JpNmLtCrPj2q8grLtC55Tm+/noB1hhwmPQjbgq5W7NPwFja0rWc/MNs681cO9wfGWLDApZW9wOvqbPuKY/N8orsu5rvw==",false,false],"9L1sdD97N6eY5A==":false,"XvnKUihQFzjBaQ==":{"AbiTu5oju7gCYQ==":null},"U2WRaftF0lCwAg==":-1857333742,"4aM727U0MEZUeQ==":{"QSRALHkWPBoJuw==":-1.3003069802421967,"Su/GYLDW0zT5eA==":false,"xoYoLDHBJVs10A==":"A/Fotk+7DslBTskD3+S8Wd5W4xBMPeRRv5UoLv+L42NkokThAJve8N2gWwiGFka84Bo0FDD6Ngcr/basGYBcRBPjboLwIAHDofBR7pnvarqt+Tn7DPnkbyQSWMoycjPaDARhQA==","kbOqgqpdicZTKg==":0.626449831838654,"FGhBRVrjD3WxGA==":null},"f9YJBHZWX5CEPg==":836786556,"arXuIVjGUib1IQ==":null},{"WEgrYW5L0MEAvQ==":"y8GNXVO8tP/MsoBp6JpkumtuNbRnpAan0bClI9tv2dkq92cvBLXWo/mJQGGT0dun+GXnCoUZRxYwc46B2P3N8SrFEx+dfNSUPii00+7SSDdt9Umms2y7R5C+whlHlrX8qNP7Qw8zjtxpMrXUT1qtNbG3A0baBLAAFaDSXa7O1ZrtxHS8ahs/JQFSU/iCR277UT56/w==","5J4ENJQK1D+ZEw==":true,"R1axGIpBEXNccg==":-0.9958740197709233,"1gpJUZyjmw7wQA==":[true]}],true],"EmRleJhTyw3U/g==":false,"Hg66w0wKbfR+0w==":"xrh8yDkNC8w/kIQl91CMnv9Kufsr3Vun1BPHFcXyqg1crW39vnvc+oljl1d4h4fDWN1b+qtD3KVLNrwRHowqKbTn+HPX6TKP0/krG32pwr2rqh+PwFbtkWY0HuafUIl852V8QGYJig==","q1yEycIcs1HLGA==":true}

class Timer
  constructor : ->
    @_start = (new Date()).getTime()
  stop : ->
    now = (new Date()).getTime()
    now - @_start

iters = 100000

mpt = new Timer()
for i in [0...iters]
  mp.pack obj
console.log "iters #{iters}: native msgpack2: #{mpt.stop()}"

ppt = new Timer()
for i in [0...iters]
  packer = new Packer()
  packer.p obj
console.log "iters #{iters}: purepack:  #{ppt.stop()}"