{"action":"created","issue":{"url":"https://api.github.com/repos/ludug3r0/go-rules/issues/1","labels_url":"https://api.github.com/repos/ludug3r0/go-rules/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/ludug3r0/go-rules/issues/1/comments","events_url":"https://api.github.com/repos/ludug3r0/go-rules/issues/1/events","html_url":"https://github.com/ludug3r0/go-rules/issues/1","id":57828018,"number":1,"title":"Performance issues when capturing and calculating board state","user":{"login":"ludug3r0","id":47824,"avatar_url":"https://avatars.githubusercontent.com/u/47824?v=3","gravatar_id":"","url":"https://api.github.com/users/ludug3r0","html_url":"https://github.com/ludug3r0","followers_url":"https://api.github.com/users/ludug3r0/followers","following_url":"https://api.github.com/users/ludug3r0/following{/other_user}","gists_url":"https://api.github.com/users/ludug3r0/gists{/gist_id}","starred_url":"https://api.github.com/users/ludug3r0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ludug3r0/subscriptions","organizations_url":"https://api.github.com/users/ludug3r0/orgs","repos_url":"https://api.github.com/users/ludug3r0/repos","events_url":"https://api.github.com/users/ludug3r0/events{/privacy}","received_events_url":"https://api.github.com/users/ludug3r0/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ludug3r0/go-rules/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"closed","locked":false,"assignee":{"login":"ludug3r0","id":47824,"avatar_url":"https://avatars.githubusercontent.com/u/47824?v=3","gravatar_id":"","url":"https://api.github.com/users/ludug3r0","html_url":"https://github.com/ludug3r0","followers_url":"https://api.github.com/users/ludug3r0/followers","following_url":"https://api.github.com/users/ludug3r0/following{/other_user}","gists_url":"https://api.github.com/users/ludug3r0/gists{/gist_id}","starred_url":"https://api.github.com/users/ludug3r0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ludug3r0/subscriptions","organizations_url":"https://api.github.com/users/ludug3r0/orgs","repos_url":"https://api.github.com/users/ludug3r0/repos","events_url":"https://api.github.com/users/ludug3r0/events{/privacy}","received_events_url":"https://api.github.com/users/ludug3r0/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-02-16T16:57:28Z","updated_at":"2015-02-22T02:28:56Z","closed_at":"2015-02-22T02:28:56Z","body":"The code takes too long to calculate the next board state for a given stone placement. This make the experience of playing painful (on the UI) as it takes too long to calculate all the next possible moves.\r\n\r\n* The clojure on the server side is kind of OK but the javascript compiled takes a lot more time to run. Possible solutions include\r\n - [x] Devise a way to profile and measure the bottlenecks\r\n\r\n    ```\r\n  (.profile js/console \"label of choice\")\r\n  (.profileEnd js/console)\r\n    ```\r\n - [x] Try memoizing critical functions [f0e841bd916de09ab774b418d8aefacf3a48d1b8]\r\n - [ ] ~~Try another algorithm approach~~\r\n - [ ] ~~Replace problematic code with a pure javascript solutions and invoke from clojurescript.~~\r\n "},"comment":{"url":"https://api.github.com/repos/ludug3r0/go-rules/issues/comments/75415784","html_url":"https://github.com/ludug3r0/go-rules/issues/1#issuecomment-75415784","issue_url":"https://api.github.com/repos/ludug3r0/go-rules/issues/1","id":75415784,"user":{"login":"ludug3r0","id":47824,"avatar_url":"https://avatars.githubusercontent.com/u/47824?v=3","gravatar_id":"","url":"https://api.github.com/users/ludug3r0","html_url":"https://github.com/ludug3r0","followers_url":"https://api.github.com/users/ludug3r0/followers","following_url":"https://api.github.com/users/ludug3r0/following{/other_user}","gists_url":"https://api.github.com/users/ludug3r0/gists{/gist_id}","starred_url":"https://api.github.com/users/ludug3r0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ludug3r0/subscriptions","organizations_url":"https://api.github.com/users/ludug3r0/orgs","repos_url":"https://api.github.com/users/ludug3r0/repos","events_url":"https://api.github.com/users/ludug3r0/events{/privacy}","received_events_url":"https://api.github.com/users/ludug3r0/received_events","type":"User","site_admin":false},"created_at":"2015-02-22T02:28:56Z","updated_at":"2015-02-22T02:28:56Z","body":"This work is being carried on ludug3r0/go-client#1 .\r\n\r\nThe approach taken was to move away from pre-calculating all possible moves."}}