{"action":"created","issue":{"url":"https://api.github.com/repos/andreasgal/j2me.js/issues/920","labels_url":"https://api.github.com/repos/andreasgal/j2me.js/issues/920/labels{/name}","comments_url":"https://api.github.com/repos/andreasgal/j2me.js/issues/920/comments","events_url":"https://api.github.com/repos/andreasgal/j2me.js/issues/920/events","html_url":"https://github.com/andreasgal/j2me.js/issues/920","id":55390019,"number":920,"title":"remove unnecessary synchronization","user":{"login":"mykmelez","id":305455,"avatar_url":"https://avatars.githubusercontent.com/u/305455?v=3","gravatar_id":"","url":"https://api.github.com/users/mykmelez","html_url":"https://github.com/mykmelez","followers_url":"https://api.github.com/users/mykmelez/followers","following_url":"https://api.github.com/users/mykmelez/following{/other_user}","gists_url":"https://api.github.com/users/mykmelez/gists{/gist_id}","starred_url":"https://api.github.com/users/mykmelez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mykmelez/subscriptions","organizations_url":"https://api.github.com/users/mykmelez/orgs","repos_url":"https://api.github.com/users/mykmelez/repos","events_url":"https://api.github.com/users/mykmelez/events{/privacy}","received_events_url":"https://api.github.com/users/mykmelez/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/andreasgal/j2me.js/labels/perf","name":"perf","color":"000000"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-01-25T00:12:59Z","updated_at":"2015-01-25T00:18:14Z","closed_at":null,"body":"The gfx Java code is full of synchronized statements and methods. There are a bunch in Graphics.java, which @TimAbraldes is removing in #882, but also in Display.jpp, Displayable.java, Canvas.java, and elsewhere.\r\n\r\nBut our VM isn't truly multi-threaded, so most of them are unnecessary, and they make the VM insert yielding code and do extra work. It isn't clear how expensive this is, but we should find out by removing the unnecessary ones, i.e. the ones around code that never calls into a native that yields.\r\n"},"comment":{"url":"https://api.github.com/repos/andreasgal/j2me.js/issues/comments/71344319","html_url":"https://github.com/andreasgal/j2me.js/issues/920#issuecomment-71344319","issue_url":"https://api.github.com/repos/andreasgal/j2me.js/issues/920","id":71344319,"user":{"login":"andreasgal","id":313748,"avatar_url":"https://avatars.githubusercontent.com/u/313748?v=3","gravatar_id":"","url":"https://api.github.com/users/andreasgal","html_url":"https://github.com/andreasgal","followers_url":"https://api.github.com/users/andreasgal/followers","following_url":"https://api.github.com/users/andreasgal/following{/other_user}","gists_url":"https://api.github.com/users/andreasgal/gists{/gist_id}","starred_url":"https://api.github.com/users/andreasgal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreasgal/subscriptions","organizations_url":"https://api.github.com/users/andreasgal/orgs","repos_url":"https://api.github.com/users/andreasgal/repos","events_url":"https://api.github.com/users/andreasgal/events{/privacy}","received_events_url":"https://api.github.com/users/andreasgal/received_events","type":"User","site_admin":false},"created_at":"2015-01-25T00:18:14Z","updated_at":"2015-01-25T00:18:14Z","body":"I wonder whether its worth to do compile time analysis instead of a manual removal. @mbebenita?"}}