Goals:
-
Avoid real performance regressions
-
Automate testing without false positives
-
Allow to experiment with improvement against self.
-
Provide other containers with exampele of testing and containers to live longer against pure functional composition.
-
Allow reasonably measure implementation of https://bitbucket.org/dadhi/dryioc/issues/197
Means:
- Several scenarios (web site, web server, desktop, mobile, cli, networking server, database, nano services(actors) ). [2]. Try to check Java world for documented cases. Document each case and reasoning for object graph.
- Generate all classes via tt. Not manual coding.
- Choose DI of several versions and last references csproj. E.g. major or specified version changes downloaded from nuget.
- Run BDN to get structured output against each chosen previous version.
- Apply proper statistical comparisons measures to avoid false negatives because of fluctuations (need to recall CS article about that I have seen and act accordingly). Stat on {moment0, monent1, moment2} * {gc, mem, time, cpu} * {workload1, workload2, ..., workloadX}. Possible prune outliers, rerun on fail.
- Setup and document each assert and reasoning so easy to tune.
- Run tests on several machines/vms/while gaming to ensure did stats/comparisons right.
- Use complex features of container not available in tests which cover many containers.
Will not:
- Store and compares historical data.
- Will not test other containers.
- Run real code (host http or read from storage).
Links:
#27
danielpalme/IocPerformance#103
Goals:
Avoid real performance regressions
Automate testing without false positives
Allow to experiment with improvement against self.
Provide other containers with exampele of testing and containers to live longer against pure functional composition.
Allow reasonably measure implementation of https://bitbucket.org/dadhi/dryioc/issues/197
Means:
Will not:
Links:
#27
danielpalme/IocPerformance#103