-
Notifications
You must be signed in to change notification settings - Fork 232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature proposal: Order test bundles based on estimated execution times #336
Comments
I like this idea. We already have the test timings when we generate the An open question would be how to update the estimated timings with the actual timings... and I think that would determine what information besides the timings we need to keep in those files. Any ideas what statistic to use? |
If we go by a simple average, then the additional info we need along with the current average is how many instances produced that average. If it is from Alternatively, if we want to go by percentiles (50th or 90th %ile) moving percentile algorithms like this one can be used. |
+1 to the idea & proposal from Oscar. I am not sure what your question is about tho @ob , are you talking about handling the update process in bluepill or in the build process. |
Ah, good point... I was thinking about having Bluepill keep the statistics but it doesn't need to. All it needs to do is use the input timings for packing and generate the actual timings. Then let the CI do with it whatever it wants. |
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Ref: MobileNativeFoundation#336
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Ref: MobileNativeFoundation#336
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Ref: MobileNativeFoundation#336
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Ref: MobileNativeFoundation#336
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Ref: MobileNativeFoundation#336
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Ref: MobileNativeFoundation#336
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Ref: MobileNativeFoundation#336
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Also added new tests for the new ordering logic and fixed some existing ones. Ref: MobileNativeFoundation#336
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Also added new tests for the new ordering logic and fixed some existing ones. Ref: MobileNativeFoundation#336
… file (#342) Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Also added new tests for the new ordering logic and fixed some existing ones. Ref: #336
Fixed in #342 |
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Also added new tests for the new ordering logic and fixed some existing ones. Ref: MobileNativeFoundation#336
… file (#356) Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Also added new tests for the new ordering logic and fixed some existing ones. Ref: #336
It's a good idea that Bluepill should generate the output file that it can use for estimates in the next run. I opened this issue #351 to discuss different ways to do that and come up with the best option. |
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Also added new tests for the new ordering logic and fixed some existing ones. Ref: MobileNativeFoundation#336
… file Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Also added new tests for the new ordering logic and fixed some existing ones. Ref: MobileNativeFoundation#336
… file (MobileNativeFoundation#342) Introducing an configuration to provide a json file with test case level execution times and subsequently use the execution times to order the test bundles from longest to shortest, for better concurrency. Also added new tests for the new ordering logic and fixed some existing ones. Ref: MobileNativeFoundation#336
Issue: The execution of test bundles by the simulators is observed to be inefficient more often than not. Towards the end of test execution, one or more simulators may be busy while the rest of them are idle with no more test bundles to execute. This issue is very similar to page fragmentation in memory allocation and multi-processor job scheduling inefficiencies.
Proposal: If a statistical model to estimate the execution times of the bundles is at Bluepill's disposal, it should be able to avoid such fragmentation by employing heuristic approaches.
Typical solution: Bluepill should support a config named
input-dir
where it looks for a specific file name (Eg.TEST-TimeEstimates.json
) or should support a config likeinput-file-path
. The file can have the best-estimated execution times at target/test case level which could be derived from a statistical model based on past execution times or some other means (Eg. an API service) a Bluepill customer might see fit. Those time estimates can then be used to split (as and when needed and appropriate) and/or order the test bundles in non-decreasing order which is a decent heuristic to avoid this fragmentation and reduce the long pole.\cc @ob
The text was updated successfully, but these errors were encountered: