{"action":"opened","issue":{"url":"https://api.github.com/repos/concrete5/concrete5/issues/3917","repository_url":"https://api.github.com/repos/concrete5/concrete5","labels_url":"https://api.github.com/repos/concrete5/concrete5/issues/3917/labels{/name}","comments_url":"https://api.github.com/repos/concrete5/concrete5/issues/3917/comments","events_url":"https://api.github.com/repos/concrete5/concrete5/issues/3917/events","html_url":"https://github.com/concrete5/concrete5/issues/3917","id":158513813,"number":3917,"title":"Global areas can slow down a system a lot","user":{"login":"Remo","id":129864,"avatar_url":"https://avatars.githubusercontent.com/u/129864?v=3","gravatar_id":"","url":"https://api.github.com/users/Remo","html_url":"https://github.com/Remo","followers_url":"https://api.github.com/users/Remo/followers","following_url":"https://api.github.com/users/Remo/following{/other_user}","gists_url":"https://api.github.com/users/Remo/gists{/gist_id}","starred_url":"https://api.github.com/users/Remo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Remo/subscriptions","organizations_url":"https://api.github.com/users/Remo/orgs","repos_url":"https://api.github.com/users/Remo/repos","events_url":"https://api.github.com/users/Remo/events{/privacy}","received_events_url":"https://api.github.com/users/Remo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-06-04T17:05:24Z","updated_at":"2016-06-04T17:05:24Z","closed_at":null,"body":"I've noticed that global areas can slow down a system a lot. Don't ask why, but there's a project where I helped out with some debugging and profiling. When I started we had 2751 global stacks.\r\n\r\nWhile most people have a lot less stacks, it still has an impact.\r\n\r\nThis method is what's super slow:https://github.com/concrete5/concrete5/blob/develop/concrete/src/Pag...\r\n\r\nThis method is called in two places:\r\nhttps://github.com/concrete5/concrete5/blob/develop/concrete/src/Cac...\r\nhttps://github.com/concrete5/concrete5/blob/develop/concrete/src/Pag...\r\n\r\nSince that validate method is called a lot, this causes a huge performance issue. The serverload dropped from around 95% during busy times to about 1%\r\n\r\nThe validateRequests say that we check blocks on the page:\r\n```php\r\n// we check the blocks on the page.\r\n$blocks = array_merge($this->getPageObject()->getBlocks(), $this->getPageObject()->getGlobalBlocks());\r\n```\r\n\r\nThis is not exactly true, we check every block in a global area and that's imho very bad."}}
{"actor":{"display_login":"Remo"}}