{"action":"created","issue":{"url":"https://api.github.com/repos/leeoniya/domvm/issues/83","repository_url":"https://api.github.com/repos/leeoniya/domvm","labels_url":"https://api.github.com/repos/leeoniya/domvm/issues/83/labels{/name}","comments_url":"https://api.github.com/repos/leeoniya/domvm/issues/83/comments","events_url":"https://api.github.com/repos/leeoniya/domvm/issues/83/events","html_url":"https://github.com/leeoniya/domvm/issues/83","id":160995219,"number":83,"title":"Performance on large HTML graphs.","user":{"login":"lawrence-dol","id":8662551,"avatar_url":"https://avatars.githubusercontent.com/u/8662551?v=3","gravatar_id":"","url":"https://api.github.com/users/lawrence-dol","html_url":"https://github.com/lawrence-dol","followers_url":"https://api.github.com/users/lawrence-dol/followers","following_url":"https://api.github.com/users/lawrence-dol/following{/other_user}","gists_url":"https://api.github.com/users/lawrence-dol/gists{/gist_id}","starred_url":"https://api.github.com/users/lawrence-dol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lawrence-dol/subscriptions","organizations_url":"https://api.github.com/users/lawrence-dol/orgs","repos_url":"https://api.github.com/users/lawrence-dol/repos","events_url":"https://api.github.com/users/lawrence-dol/events{/privacy}","received_events_url":"https://api.github.com/users/lawrence-dol/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":33,"created_at":"2016-06-17T23:58:02Z","updated_at":"2016-06-22T01:00:00Z","closed_at":null,"body":"Opening a new issue only to get this on the radar; I am not able to prioritize this for the next two weeks as the CEO is in town an I am demoing the proof-of-concept and will be in strategic meetings. However, I *will* definitely come back to this...\r\n\r\nOn another (only tangentially related) thread I said:\r\n\r\n> I do have to say, for my mildly complex view of a few thousand nodes there is noticeable lag that, so far, I can only attribute to view generation and downstream. But I haven't looked into it deeply since function is a much higher priority to me.\r\n\r\nIt turns out that when I dumped and formatted the HTML my \"few thousand\" is closer to 8K. I have all the major details of my UI in place, now.\r\n\r\nI am seeing a rendering time of about 500ms to render. And about 700 ms in paint. This is on Firefox 47 and may be directly related to that. Chrome seems quite spritely by comparison, though still not quite as snappy as I'd hoped. The total is about a second of latency.\r\n\r\nI'll report back here as I make progress. The reformatted HTML is attached if you are curious. Please understand that this is still just a prototype.\r\n\r\n[Screen-80x24.txt](https://github.com/leeoniya/domvm/files/321442/Screen-80x24.txt)\r\n\r\nAlso for the curious, the perf graph:\r\n\r\n![renderperf](https://cloud.githubusercontent.com/assets/8662551/16167754/f580304e-34ad-11e6-851d-81e1a964c4fb.PNG)\r\n"},"comment":{"url":"https://api.github.com/repos/leeoniya/domvm/issues/comments/227615535","html_url":"https://github.com/leeoniya/domvm/issues/83#issuecomment-227615535","issue_url":"https://api.github.com/repos/leeoniya/domvm/issues/83","id":227615535,"user":{"login":"lawrence-dol","id":8662551,"avatar_url":"https://avatars.githubusercontent.com/u/8662551?v=3","gravatar_id":"","url":"https://api.github.com/users/lawrence-dol","html_url":"https://github.com/lawrence-dol","followers_url":"https://api.github.com/users/lawrence-dol/followers","following_url":"https://api.github.com/users/lawrence-dol/following{/other_user}","gists_url":"https://api.github.com/users/lawrence-dol/gists{/gist_id}","starred_url":"https://api.github.com/users/lawrence-dol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lawrence-dol/subscriptions","organizations_url":"https://api.github.com/users/lawrence-dol/orgs","repos_url":"https://api.github.com/users/lawrence-dol/repos","events_url":"https://api.github.com/users/lawrence-dol/events{/privacy}","received_events_url":"https://api.github.com/users/lawrence-dol/received_events","type":"User","site_admin":false},"created_at":"2016-06-22T01:00:00Z","updated_at":"2016-06-22T01:00:00Z","body":"@leeoniya \r\n\r\n> as in, every cell has a key\r\n\r\nOh, no. Just the `div` that contains the `table`, as a whole.\r\n\r\n> I think that your quest for textNode uniformity may be preventing some significant optimizations\r\n\r\nFair enough, but it not uniformity for it's own sake; is for the sake of the code that has to manipulate the grid before it's handed off to DOMVM.\r\n\r\nI *suppose* I could process out the cell arrays before I hand it off, but I think by then the damage is done. Still it could avoid the doubled up `insertBefore` calls (why are there two for every node?).\r\n\r\nBTW, I've tried using `DOMInstr` following your fiddle and it just logs `Object { _time: 0 }` to the console. I wrapped the redraw call like you did:\r\n\r\n    /**/instr.start();\r\n    vm.redraw();\r\n    /**/console.log(instr.end());\r\n"}}
{"actor":{"display_login":"lawrence-dol"}}