{"action":"created","issue":{"url":"https://api.github.com/repos/RFO-BASIC/Basic/issues/198","labels_url":"https://api.github.com/repos/RFO-BASIC/Basic/issues/198/labels{/name}","comments_url":"https://api.github.com/repos/RFO-BASIC/Basic/issues/198/comments","events_url":"https://api.github.com/repos/RFO-BASIC/Basic/issues/198/events","html_url":"https://github.com/RFO-BASIC/Basic/issues/198","id":115248161,"number":198,"title":"Accelerate variables lookup","user":{"login":"mougino","id":2697547,"avatar_url":"https://avatars.githubusercontent.com/u/2697547?v=3","gravatar_id":"","url":"https://api.github.com/users/mougino","html_url":"https://github.com/mougino","followers_url":"https://api.github.com/users/mougino/followers","following_url":"https://api.github.com/users/mougino/following{/other_user}","gists_url":"https://api.github.com/users/mougino/gists{/gist_id}","starred_url":"https://api.github.com/users/mougino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mougino/subscriptions","organizations_url":"https://api.github.com/users/mougino/orgs","repos_url":"https://api.github.com/users/mougino/repos","events_url":"https://api.github.com/users/mougino/events{/privacy}","received_events_url":"https://api.github.com/users/mougino/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RFO-BASIC/Basic/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":81,"created_at":"2015-11-05T09:57:42Z","updated_at":"2015-12-30T17:46:21Z","closed_at":null,"body":"While discussing globals [on the forum] (http://rfobasic.freeforums.org/global-variables-was-multiple-values-for-bundle-get-t3760.html) user Gikam asked for [binary search on variables] (http://rfobasic.freeforums.org/post24358.html#p24358) instead of current linear search.\r\n\r\nMarc, you already investigated keywords lookup, but not variable lookups, and according to you back in 2012, variable lookup is the 1st most consuming task of the parser.\r\n\r\nI investigated [here] (http://rfobasic.freeforums.org/post24370.html#p24370) and just built a BASIC! test version perfecting this trail. I wrote a benchmark reading randomly 500 out of 702 different variables: with BASIC! v01.88 it takes an average of 250ms. On my modified BASIC! (based on V01.88) it takes an average of 52ms (gain of 80%).\r\n\r\nChanges only take place in 2 functions: `Run.searchVar(String)` and `Run.createNewVar(String, int)` as indicated [here] (http://rfobasic.freeforums.org/post24370.html#p24370)"},"comment":{"url":"https://api.github.com/repos/RFO-BASIC/Basic/issues/comments/168044177","html_url":"https://github.com/RFO-BASIC/Basic/issues/198#issuecomment-168044177","issue_url":"https://api.github.com/repos/RFO-BASIC/Basic/issues/198","id":168044177,"user":{"login":"mougino","id":2697547,"avatar_url":"https://avatars.githubusercontent.com/u/2697547?v=3","gravatar_id":"","url":"https://api.github.com/users/mougino","html_url":"https://github.com/mougino","followers_url":"https://api.github.com/users/mougino/followers","following_url":"https://api.github.com/users/mougino/following{/other_user}","gists_url":"https://api.github.com/users/mougino/gists{/gist_id}","starred_url":"https://api.github.com/users/mougino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mougino/subscriptions","organizations_url":"https://api.github.com/users/mougino/orgs","repos_url":"https://api.github.com/users/mougino/repos","events_url":"https://api.github.com/users/mougino/events{/privacy}","received_events_url":"https://api.github.com/users/mougino/received_events","type":"User","site_admin":false},"created_at":"2015-12-30T17:46:21Z","updated_at":"2015-12-30T17:46:21Z","body":"Woohoo indeed :)\r\nBoth versions can coexist, one official and one for testers. \r\nRelease it Marc! Make it free like an eaaagle :D"}}