CSC/ECE 517 Spring 2015/oss E1510 FLP: Difference between revisions
No edit summary |
|||
Line 9: | Line 9: | ||
===Performance issue before modification=== | ===Performance issue before modification=== | ||
<pre> | |||
Assignment Load (0.1ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 | |||
CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
CACHE (0.2ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
CACHE (0.1ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
CACHE (0.1ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
Rendered tree_display/_row_header.html.erb (17.4ms) | |||
CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
Assignment Load (0.2ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 | |||
CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
Rendered tree_display/actions/_shared_actions.html.erb (2.6ms) | |||
CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
SignUpTopic Load (0.1ms) SELECT `sign_up_topics`.* FROM `sign_up_topics` WHERE (assignment_id = 1) ORDER BY `sign_up_topics`.`id` ASC LIMIT 1 | |||
CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] | |||
Rendered tree_display/actions/_assignments_actions.html.erb (8.8ms) | |||
</pre> | |||
==Locate bug== | ==Locate bug== |
Revision as of 01:50, 23 March 2015
Expertiza - Fix Instructor Login Performance Issue
Expertiza is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities.<ref>Expertiza on GitHub</ref>
Project Description
Currently when an Instructor logs into Expertiza,there a lot of select* from assignments queries being fired on database which would have an adverse effect on performance. We analyzed the source of this issue and made some changes, which reduced the number of select queries executed. The performance is high improved. The mission involved is tracing the source of the issue and modify the code to fix the issue.
Performance issue before modification
Assignment Load (0.1ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] CACHE (0.2ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] CACHE (0.1ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] CACHE (0.1ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] Rendered tree_display/_row_header.html.erb (17.4ms) CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] Assignment Load (0.2ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] Rendered tree_display/actions/_shared_actions.html.erb (2.6ms) CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] SignUpTopic Load (0.1ms) SELECT `sign_up_topics`.* FROM `sign_up_topics` WHERE (assignment_id = 1) ORDER BY `sign_up_topics`.`id` ASC LIMIT 1 CACHE (0.0ms) SELECT `assignments`.* FROM `assignments` WHERE `assignments`.`id` = 1 LIMIT 1 [["id", 1]] Rendered tree_display/actions/_assignments_actions.html.erb (8.8ms)
Locate bug
Install query_reviewer
Analyze code
Modifications
_row_header.html.erb
_assignment_actions.html.erb
assignment_node.rb
Before Modification
After Modification
Performance Improvment
References
<references/>