We'll probably end up writing benchmarks for classes or methods that are package-private, so that would be one reason to not create a special benchmarks package.
On Mon, Jan 8, 2018 at 1:40 PM, Dan Smith <dsm...@pivotal.io> wrote: > I think this module was specifically added for running JMH benchmarks since > it's pulling in the JMH plugin. JMH is framework for easily writing > microbenchmarks. > > I think it makes sense to put JMH benchmarks in the same package as the > code under tests, since you may end up writing a microbenchmark for just > one in internal class. Arguably, all of the modules could pull in the JMH > plugin and these benchmarks could sit in those modules. I think the current > structure might have just been the easiest way to integrate JMH into the > build. > > -Dan > > On Sun, Jan 7, 2018 at 9:59 PM, Xiaojian Zhou <gz...@pivotal.io> wrote: > > > The package might be always a problem. Even you put the cq benchmark code > > under geode-cq to near its source code, it might still have to access > code > > under other package, such as geode-core. > > > > So I think put benchmark test code under benchmark package is ok. Your > > option 2) is good. > > > > Regards > > Gester > > > > On Fri, Jan 5, 2018 at 11:57 AM, Nick Reich <nre...@pivotal.io> wrote: > > > > > Team, > > > > > > I am in the progress of adding new benchmarks to the (currently sparse) > > > geode-benchmarks module. The lack of current examples in the module > leads > > > me to wonder what the correct organization of benchmarks in the module > is > > > (and if this is the right location). > > > > > > The existing benchmarks are all in org.apache.geode.cache.benchmark. > > > Following this pattern would (presumably) result in benchmark > subpackages > > > in each package that has benchmarks. Making the root package > > > org.apache.geode.benchmark would remove this proliferation of sub > > packages. > > > However, both these approaches have the issue that package level > > > methods/classes cannot be accessed from benchmarks as they will never > > share > > > a package with the production code. > > > > > > 1) Should benchmarks then not be put in special benchmark packages? > > > > > > 2) Should our benchmarks not invoke package level methods/classes in > the > > > case that we should use benchmark packages? Or should such benchmarks > not > > > reside in the benchmarks module? > > > > > > 3) Is geode-benchmarks where we intend all benchmarks, only certain > > classes > > > of benchmarks (all using jmh for example), or would we prefer embedding > > > them in the modules where the code being benchmarked resides? > > > > > > Thanks for your input. > > > > > >