{"action":"opened","number":1692,"pull_request":{"url":"https://api.github.com/repos/xtermjs/xterm.js/pulls/1692","id":215686181,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE1Njg2MTgx","html_url":"https://github.com/xtermjs/xterm.js/pull/1692","diff_url":"https://github.com/xtermjs/xterm.js/pull/1692.diff","patch_url":"https://github.com/xtermjs/xterm.js/pull/1692.patch","issue_url":"https://api.github.com/repos/xtermjs/xterm.js/issues/1692","number":1692,"state":"open","locked":false,"title":"Reduce unnecessary objects generated when drawing from the dynamic text atlas","user":{"login":"Tyriar","id":2193314,"node_id":"MDQ6VXNlcjIxOTMzMTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/2193314?v=4","gravatar_id":"","url":"https://api.github.com/users/Tyriar","html_url":"https://github.com/Tyriar","followers_url":"https://api.github.com/users/Tyriar/followers","following_url":"https://api.github.com/users/Tyriar/following{/other_user}","gists_url":"https://api.github.com/users/Tyriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Tyriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tyriar/subscriptions","organizations_url":"https://api.github.com/users/Tyriar/orgs","repos_url":"https://api.github.com/users/Tyriar/repos","events_url":"https://api.github.com/users/Tyriar/events{/privacy}","received_events_url":"https://api.github.com/users/Tyriar/received_events","type":"User","site_admin":false},"body":"This PR removed several of the in-between objects needed to render using the dynamic texture atlas. It's a bit difficult to measure this currently (https://github.com/xtermjs/xterm.js/issues/1688), the one piece that's very easy to measure is the impact on using a number instead of a string for the cache key:\r\n\r\nBefore:\r\n\r\n<img width=\"658\" alt=\"screen shot 2018-09-14 at 12 11 50 pm\" src=\"https://user-images.githubusercontent.com/2193314/45570391-68fd7600-b817-11e8-9c47-cdc2ee50711d.png\">\r\n\r\nAfter:\r\n\r\n<img width=\"650\" alt=\"screen shot 2018-09-14 at 12 12 02 pm\" src=\"https://user-images.githubusercontent.com/2193314/45570392-6b5fd000-b817-11e8-819a-07a60156eae5.png\">\r\n\r\nI couldn't find anything else that could contribute to improving #1677. I also experimented with drawing using an ImageBitmap but couldn't find big changes in performance so I left it out of the PR: https://github.com/Tyriar/xterm.js/commit/e8d06b677868e57887cd9b20b095984833cffe75\r\n\r\nFixes #1677","created_at":"2018-09-14T19:14:15Z","updated_at":"2018-09-14T19:14:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":{"login":"Tyriar","id":2193314,"node_id":"MDQ6VXNlcjIxOTMzMTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/2193314?v=4","gravatar_id":"","url":"https://api.github.com/users/Tyriar","html_url":"https://github.com/Tyriar","followers_url":"https://api.github.com/users/Tyriar/followers","following_url":"https://api.github.com/users/Tyriar/following{/other_user}","gists_url":"https://api.github.com/users/Tyriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Tyriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tyriar/subscriptions","organizations_url":"https://api.github.com/users/Tyriar/orgs","repos_url":"https://api.github.com/users/Tyriar/repos","events_url":"https://api.github.com/users/Tyriar/events{/privacy}","received_events_url":"https://api.github.com/users/Tyriar/received_events","type":"User","site_admin":false},"assignees":[{"login":"Tyriar","id":2193314,"node_id":"MDQ6VXNlcjIxOTMzMTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/2193314?v=4","gravatar_id":"","url":"https://api.github.com/users/Tyriar","html_url":"https://github.com/Tyriar","followers_url":"https://api.github.com/users/Tyriar/followers","following_url":"https://api.github.com/users/Tyriar/following{/other_user}","gists_url":"https://api.github.com/users/Tyriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Tyriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tyriar/subscriptions","organizations_url":"https://api.github.com/users/Tyriar/orgs","repos_url":"https://api.github.com/users/Tyriar/repos","events_url":"https://api.github.com/users/Tyriar/events{/privacy}","received_events_url":"https://api.github.com/users/Tyriar/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/xtermjs/xterm.js/pulls/1692/commits","review_comments_url":"https://api.github.com/repos/xtermjs/xterm.js/pulls/1692/comments","review_comment_url":"https://api.github.com/repos/xtermjs/xterm.js/pulls/comments{/number}","comments_url":"https://api.github.com/repos/xtermjs/xterm.js/issues/1692/comments","statuses_url":"https://api.github.com/repos/xtermjs/xterm.js/statuses/7762ab96a5b0d51b8bfcba20b4bf736f35f5a808","head":{"label":"Tyriar:1677_perf_improve","ref":"1677_perf_improve","sha":"7762ab96a5b0d51b8bfcba20b4bf736f35f5a808","user":{"login":"Tyriar","id":2193314,"node_id":"MDQ6VXNlcjIxOTMzMTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/2193314?v=4","gravatar_id":"","url":"https://api.github.com/users/Tyriar","html_url":"https://github.com/Tyriar","followers_url":"https://api.github.com/users/Tyriar/followers","following_url":"https://api.github.com/users/Tyriar/following{/other_user}","gists_url":"https://api.github.com/users/Tyriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Tyriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tyriar/subscriptions","organizations_url":"https://api.github.com/users/Tyriar/orgs","repos_url":"https://api.github.com/users/Tyriar/repos","events_url":"https://api.github.com/users/Tyriar/events{/privacy}","received_events_url":"https://api.github.com/users/Tyriar/received_events","type":"User","site_admin":false},"repo":{"id":60249805,"node_id":"MDEwOlJlcG9zaXRvcnk2MDI0OTgwNQ==","name":"xterm.js","full_name":"Tyriar/xterm.js","owner":{"login":"Tyriar","id":2193314,"node_id":"MDQ6VXNlcjIxOTMzMTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/2193314?v=4","gravatar_id":"","url":"https://api.github.com/users/Tyriar","html_url":"https://github.com/Tyriar","followers_url":"https://api.github.com/users/Tyriar/followers","following_url":"https://api.github.com/users/Tyriar/following{/other_user}","gists_url":"https://api.github.com/users/Tyriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Tyriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tyriar/subscriptions","organizations_url":"https://api.github.com/users/Tyriar/orgs","repos_url":"https://api.github.com/users/Tyriar/repos","events_url":"https://api.github.com/users/Tyriar/events{/privacy}","received_events_url":"https://api.github.com/users/Tyriar/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Tyriar/xterm.js","description":"Full xterm terminal, in your browser","fork":true,"url":"https://api.github.com/repos/Tyriar/xterm.js","forks_url":"https://api.github.com/repos/Tyriar/xterm.js/forks","keys_url":"https://api.github.com/repos/Tyriar/xterm.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Tyriar/xterm.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Tyriar/xterm.js/teams","hooks_url":"https://api.github.com/repos/Tyriar/xterm.js/hooks","issue_events_url":"https://api.github.com/repos/Tyriar/xterm.js/issues/events{/number}","events_url":"https://api.github.com/repos/Tyriar/xterm.js/events","assignees_url":"https://api.github.com/repos/Tyriar/xterm.js/assignees{/user}","branches_url":"https://api.github.com/repos/Tyriar/xterm.js/branches{/branch}","tags_url":"https://api.github.com/repos/Tyriar/xterm.js/tags","blobs_url":"https://api.github.com/repos/Tyriar/xterm.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Tyriar/xterm.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Tyriar/xterm.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/Tyriar/xterm.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Tyriar/xterm.js/statuses/{sha}","languages_url":"https://api.github.com/repos/Tyriar/xterm.js/languages","stargazers_url":"https://api.github.com/repos/Tyriar/xterm.js/stargazers","contributors_url":"https://api.github.com/repos/Tyriar/xterm.js/contributors","subscribers_url":"https://api.github.com/repos/Tyriar/xterm.js/subscribers","subscription_url":"https://api.github.com/repos/Tyriar/xterm.js/subscription","commits_url":"https://api.github.com/repos/Tyriar/xterm.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/Tyriar/xterm.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/Tyriar/xterm.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/Tyriar/xterm.js/issues/comments{/number}","contents_url":"https://api.github.com/repos/Tyriar/xterm.js/contents/{+path}","compare_url":"https://api.github.com/repos/Tyriar/xterm.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Tyriar/xterm.js/merges","archive_url":"https://api.github.com/repos/Tyriar/xterm.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Tyriar/xterm.js/downloads","issues_url":"https://api.github.com/repos/Tyriar/xterm.js/issues{/number}","pulls_url":"https://api.github.com/repos/Tyriar/xterm.js/pulls{/number}","milestones_url":"https://api.github.com/repos/Tyriar/xterm.js/milestones{/number}","notifications_url":"https://api.github.com/repos/Tyriar/xterm.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Tyriar/xterm.js/labels{/name}","releases_url":"https://api.github.com/repos/Tyriar/xterm.js/releases{/id}","deployments_url":"https://api.github.com/repos/Tyriar/xterm.js/deployments","created_at":"2016-06-02T09:15:32Z","updated_at":"2018-09-14T17:10:00Z","pushed_at":"2018-09-14T19:06:21Z","git_url":"git://github.com/Tyriar/xterm.js.git","ssh_url":"git@github.com:Tyriar/xterm.js.git","clone_url":"https://github.com/Tyriar/xterm.js.git","svn_url":"https://github.com/Tyriar/xterm.js","homepage":"https://lair.io/sourcelair/xterm","size":7042,"stargazers_count":10,"watchers_count":10,"language":"TypeScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":10,"default_branch":"master"}},"base":{"label":"xtermjs:master","ref":"master","sha":"86c78e726d80c8173813ab3d79086f30ba7eb8c0","user":{"login":"xtermjs","id":11927490,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExOTI3NDkw","avatar_url":"https://avatars1.githubusercontent.com/u/11927490?v=4","gravatar_id":"","url":"https://api.github.com/users/xtermjs","html_url":"https://github.com/xtermjs","followers_url":"https://api.github.com/users/xtermjs/followers","following_url":"https://api.github.com/users/xtermjs/following{/other_user}","gists_url":"https://api.github.com/users/xtermjs/gists{/gist_id}","starred_url":"https://api.github.com/users/xtermjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xtermjs/subscriptions","organizations_url":"https://api.github.com/users/xtermjs/orgs","repos_url":"https://api.github.com/users/xtermjs/repos","events_url":"https://api.github.com/users/xtermjs/events{/privacy}","received_events_url":"https://api.github.com/users/xtermjs/received_events","type":"Organization","site_admin":false},"repo":{"id":18068542,"node_id":"MDEwOlJlcG9zaXRvcnkxODA2ODU0Mg==","name":"xterm.js","full_name":"xtermjs/xterm.js","owner":{"login":"xtermjs","id":11927490,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExOTI3NDkw","avatar_url":"https://avatars1.githubusercontent.com/u/11927490?v=4","gravatar_id":"","url":"https://api.github.com/users/xtermjs","html_url":"https://github.com/xtermjs","followers_url":"https://api.github.com/users/xtermjs/followers","following_url":"https://api.github.com/users/xtermjs/following{/other_user}","gists_url":"https://api.github.com/users/xtermjs/gists{/gist_id}","starred_url":"https://api.github.com/users/xtermjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xtermjs/subscriptions","organizations_url":"https://api.github.com/users/xtermjs/orgs","repos_url":"https://api.github.com/users/xtermjs/repos","events_url":"https://api.github.com/users/xtermjs/events{/privacy}","received_events_url":"https://api.github.com/users/xtermjs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/xtermjs/xterm.js","description":"A terminal for the web","fork":false,"url":"https://api.github.com/repos/xtermjs/xterm.js","forks_url":"https://api.github.com/repos/xtermjs/xterm.js/forks","keys_url":"https://api.github.com/repos/xtermjs/xterm.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xtermjs/xterm.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xtermjs/xterm.js/teams","hooks_url":"https://api.github.com/repos/xtermjs/xterm.js/hooks","issue_events_url":"https://api.github.com/repos/xtermjs/xterm.js/issues/events{/number}","events_url":"https://api.github.com/repos/xtermjs/xterm.js/events","assignees_url":"https://api.github.com/repos/xtermjs/xterm.js/assignees{/user}","branches_url":"https://api.github.com/repos/xtermjs/xterm.js/branches{/branch}","tags_url":"https://api.github.com/repos/xtermjs/xterm.js/tags","blobs_url":"https://api.github.com/repos/xtermjs/xterm.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xtermjs/xterm.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xtermjs/xterm.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/xtermjs/xterm.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xtermjs/xterm.js/statuses/{sha}","languages_url":"https://api.github.com/repos/xtermjs/xterm.js/languages","stargazers_url":"https://api.github.com/repos/xtermjs/xterm.js/stargazers","contributors_url":"https://api.github.com/repos/xtermjs/xterm.js/contributors","subscribers_url":"https://api.github.com/repos/xtermjs/xterm.js/subscribers","subscription_url":"https://api.github.com/repos/xtermjs/xterm.js/subscription","commits_url":"https://api.github.com/repos/xtermjs/xterm.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/xtermjs/xterm.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/xtermjs/xterm.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/xtermjs/xterm.js/issues/comments{/number}","contents_url":"https://api.github.com/repos/xtermjs/xterm.js/contents/{+path}","compare_url":"https://api.github.com/repos/xtermjs/xterm.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xtermjs/xterm.js/merges","archive_url":"https://api.github.com/repos/xtermjs/xterm.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xtermjs/xterm.js/downloads","issues_url":"https://api.github.com/repos/xtermjs/xterm.js/issues{/number}","pulls_url":"https://api.github.com/repos/xtermjs/xterm.js/pulls{/number}","milestones_url":"https://api.github.com/repos/xtermjs/xterm.js/milestones{/number}","notifications_url":"https://api.github.com/repos/xtermjs/xterm.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xtermjs/xterm.js/labels{/name}","releases_url":"https://api.github.com/repos/xtermjs/xterm.js/releases{/id}","deployments_url":"https://api.github.com/repos/xtermjs/xterm.js/deployments","created_at":"2014-03-24T16:04:04Z","updated_at":"2018-09-14T17:09:37Z","pushed_at":"2018-09-14T17:41:08Z","git_url":"git://github.com/xtermjs/xterm.js.git","ssh_url":"git@github.com:xtermjs/xterm.js.git","clone_url":"https://github.com/xtermjs/xterm.js.git","svn_url":"https://github.com/xtermjs/xterm.js","homepage":"https://xtermjs.org/","size":5557,"stargazers_count":4720,"watchers_count":4720,"language":"TypeScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":478,"mirror_url":null,"archived":false,"open_issues_count":117,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":478,"open_issues":117,"watchers":4720,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/xtermjs/xterm.js/pulls/1692"},"html":{"href":"https://github.com/xtermjs/xterm.js/pull/1692"},"issue":{"href":"https://api.github.com/repos/xtermjs/xterm.js/issues/1692"},"comments":{"href":"https://api.github.com/repos/xtermjs/xterm.js/issues/1692/comments"},"review_comments":{"href":"https://api.github.com/repos/xtermjs/xterm.js/pulls/1692/comments"},"review_comment":{"href":"https://api.github.com/repos/xtermjs/xterm.js/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/xtermjs/xterm.js/pulls/1692/commits"},"statuses":{"href":"https://api.github.com/repos/xtermjs/xterm.js/statuses/7762ab96a5b0d51b8bfcba20b4bf736f35f5a808"}},"author_association":"MEMBER","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":5,"additions":143,"deletions":95,"changed_files":8}}
{"actor":{"display_login":"Tyriar"}}