Add further Mnemosyne tracing to find performance issues

This commit is contained in:
Sebastian Serth
2020-03-17 18:43:13 +01:00
parent b38b7bd435
commit ac0b5dc8e6

View File

@ -2,8 +2,10 @@ require 'concurrent/future'
module SubmissionScoring module SubmissionScoring
def collect_test_results(submission) def collect_test_results(submission)
Mnemosyne.trace 'custom.codeocean.collect_test_results', meta: { submission: submission.id } do
submission.collect_files.select(&:teacher_defined_test?).map do |file| submission.collect_files.select(&:teacher_defined_test?).map do |file|
future = Concurrent::Future.execute do future = Concurrent::Future.execute do
Mnemosyne.trace 'custom.codeocean.collect_test_results_block', meta: { file: file.id, submission: submission.id } do
assessor = Assessor.new(execution_environment: submission.execution_environment) assessor = Assessor.new(execution_environment: submission.execution_environment)
output = execute_test_file(file, submission) output = execute_test_file(file, submission)
assessment = assessor.assess(output) assessment = assessor.assess(output)
@ -21,9 +23,11 @@ module SubmissionScoring
output.merge!(assessment) output.merge!(assessment)
output.merge!(filename: file.name_with_extension, message: feedback_message(file, output[:score]), weight: file.weight) output.merge!(filename: file.name_with_extension, message: feedback_message(file, output[:score]), weight: file.weight)
end end
end
future.value future.value
end end
end end
end
private :collect_test_results private :collect_test_results
def execute_test_file(file, submission) def execute_test_file(file, submission)