{"action":"created","issue":{"url":"https://api.github.com/repos/kanaka/noVNC/issues/487","labels_url":"https://api.github.com/repos/kanaka/noVNC/issues/487/labels{/name}","comments_url":"https://api.github.com/repos/kanaka/noVNC/issues/487/comments","events_url":"https://api.github.com/repos/kanaka/noVNC/issues/487/events","html_url":"https://github.com/kanaka/noVNC/pull/487","id":77856209,"number":487,"title":"Introduce new zlib implementation","user":{"login":"DirectXMan12","id":119737,"avatar_url":"https://avatars.githubusercontent.com/u/119737?v=3","gravatar_id":"","url":"https://api.github.com/users/DirectXMan12","html_url":"https://github.com/DirectXMan12","followers_url":"https://api.github.com/users/DirectXMan12/followers","following_url":"https://api.github.com/users/DirectXMan12/following{/other_user}","gists_url":"https://api.github.com/users/DirectXMan12/gists{/gist_id}","starred_url":"https://api.github.com/users/DirectXMan12/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DirectXMan12/subscriptions","organizations_url":"https://api.github.com/users/DirectXMan12/orgs","repos_url":"https://api.github.com/users/DirectXMan12/repos","events_url":"https://api.github.com/users/DirectXMan12/events{/privacy}","received_events_url":"https://api.github.com/users/DirectXMan12/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-05-18T23:48:58Z","updated_at":"2015-05-19T16:59:20Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kanaka/noVNC/pulls/487","html_url":"https://github.com/kanaka/noVNC/pull/487","diff_url":"https://github.com/kanaka/noVNC/pull/487.diff","patch_url":"https://github.com/kanaka/noVNC/pull/487.patch"},"body":"***WIP: Do Not Merge***\r\n\r\nThis is an initial shot at replacing our current zlib implementation (jsunzip) with a faster one.\r\n\r\nI ran two different tests: one was running the `sl` program using a TigerVNC server, and the other was running `ls` against a qemu-hosted VM using qemu's built-in VNC support.  Numbers reported are based on the `vnc_playback.html` perf test.\r\n\r\nFor the `sl` test, the new implementation shows a slight improvement (maybe 10%).  The test was preformed based on a recording of the `sl` program.\r\n\r\nFor the `ls` test, the new implementation cut the time nearly in half in Chrome, and even more in Firefox.  The test was performed by running `ls -lR` on my home directory in the qemu-hosted VM.\r\n\r\nThoughts?"},"comment":{"url":"https://api.github.com/repos/kanaka/noVNC/issues/comments/103590896","html_url":"https://github.com/kanaka/noVNC/pull/487#issuecomment-103590896","issue_url":"https://api.github.com/repos/kanaka/noVNC/issues/487","id":103590896,"user":{"login":"kanaka","id":70127,"avatar_url":"https://avatars.githubusercontent.com/u/70127?v=3","gravatar_id":"","url":"https://api.github.com/users/kanaka","html_url":"https://github.com/kanaka","followers_url":"https://api.github.com/users/kanaka/followers","following_url":"https://api.github.com/users/kanaka/following{/other_user}","gists_url":"https://api.github.com/users/kanaka/gists{/gist_id}","starred_url":"https://api.github.com/users/kanaka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kanaka/subscriptions","organizations_url":"https://api.github.com/users/kanaka/orgs","repos_url":"https://api.github.com/users/kanaka/repos","events_url":"https://api.github.com/users/kanaka/events{/privacy}","received_events_url":"https://api.github.com/users/kanaka/received_events","type":"User","site_admin":false},"created_at":"2015-05-19T16:59:20Z","updated_at":"2015-05-19T16:59:20Z","body":"@DirectXMan12 and I forgot to say good work! It's exciting to see this starting to happen. There is a lot of potential areas for noVNC performance improvements: binary types, asm.js, web workers (especially now that firefox supports WebSockets in workers), SIMD.js, etc. And since some of those areas represent in-progress standards efforts, we also have an opportunity to contribute to state-of-the-art. noVNC is a fairly widely used project where those technologies can actually be used and tested using real-world conditions. So I think we are somewhat uniquely positioned to be able to contribute to the development of those technologies. The same was true with canvas and websockets back when noVNC started and I was able to make a few minor contributions to the Websocket protocol and Canvas API. If only we all had several more hours in the day :-) Maybe I can convince my faculty supervisor to let me work on this as part of my PhD."}}