R
Roedy Green
See http://mindprod.com/jgloss/tweakable.html
A static final constant that may be safely varied between limits. The
program still behaves the save way, no matter what the value, but it
may run faster at the optimum setting. Tweakables include such things
as ideal buffer sizes, maximum number of threads to spawn, best
initial sizes for various Hashtables and ArrayLists, how frequently to
invoke the garbage collector and even the size of the virtual heap.
Tweakables can also be discrete variables that for example may select
between one of seven different sorting algorithms.
I envision a time when automated optimisation process will monitor
your program every time it runs in production, automatically adjusting
the tweaking parameters until it gradually learns and homes in on the
optimal settings for running under various conditions.
In the meantime, what would be the best way to go about implementing
them? What sort of syntax would you use?
A simple integer tweakable constant has a min, max and suggested
value. Anyone is at liberty to adjust the suggested value between min
and max.
Some tweakables you need no know the value of at compile time.
Some could be adjusted with sliders on generic control panel at run
time, with persistence.
Ideally some program would try adjusting them and doing experiments.
A static final constant that may be safely varied between limits. The
program still behaves the save way, no matter what the value, but it
may run faster at the optimum setting. Tweakables include such things
as ideal buffer sizes, maximum number of threads to spawn, best
initial sizes for various Hashtables and ArrayLists, how frequently to
invoke the garbage collector and even the size of the virtual heap.
Tweakables can also be discrete variables that for example may select
between one of seven different sorting algorithms.
I envision a time when automated optimisation process will monitor
your program every time it runs in production, automatically adjusting
the tweaking parameters until it gradually learns and homes in on the
optimal settings for running under various conditions.
In the meantime, what would be the best way to go about implementing
them? What sort of syntax would you use?
A simple integer tweakable constant has a min, max and suggested
value. Anyone is at liberty to adjust the suggested value between min
and max.
Some tweakables you need no know the value of at compile time.
Some could be adjusted with sliders on generic control panel at run
time, with persistence.
Ideally some program would try adjusting them and doing experiments.