Repository navigation
ARROW-28: Adding google's benchmark library to the toolchain - #29
emkornfield wants to merge 3 commits into
Conversation
|
For point item 4. I mean in addition to the obvious of adding the ability to add/automatially run benchmark tests. |
|
|
||
| if (GBENCHMARK_INCLUDE_DIR AND GBENCHMARK_LIBRARIES) | ||
| set(GBENCHMARK_FOUND TRUE) | ||
| get_filename_component( GBENCHMARK_LIBS ${GBENCHMARK_LIBRARIES} DIRECTORY ) |
There was a problem hiding this comment.
change DIRECTORY to PATH here for cmake 2.8
|
|
OK, I think this is ready for review. In regards to where we place google benchmark, I changed this to the install directory. It seems like there is a homebrew formula for it, but I could find any other package management systems that support it (I didn't look too hard). I made the following changes which may or may not be controversial:
|
|
Cool, I can review in more detail tomorrow. However, there is a conflicting aspect of this patch: in #28 I added an option to execute the unit tests with valgrind. Perhaps I should merge that patch (and let code reviews accumulate after the fact) so that you can rebase and make sure everything is working. Let me know what you think. We probably don't want to run the benchmarks through valgrind (on Travis CI, anyway). Also, re: Travis CI, the benchmarks will in general be much slower to run than unit tests, so rather than running them by default, we perhaps should only build (to ensure no compilation errors) but do not run the benchmarks. Separately, I would like to find a benchmark reporting solution for continuous performance monitoring (not unlike my vbench hack http://pydata.github.io/vbench/) |
| # The comm program requires that its two inputs be sorted. | ||
| TEST_TMPDIR_BEFORE=$(find $TEST_TMPDIR -maxdepth 1 -type d | sort) | ||
|
|
||
| function setup_sanitizers() { |
There was a problem hiding this comment.
Thanks for doing this; I wanted to do some refactoring to this once we got ASAN/TSAN setup (we'll see how relevant TSAN ends up being but ASAN builds will be useful)
|
I quickly reviewed this; everything looks good with the exception of the question around how (and if at all) the benchmarks are run in Travis CI. I'm AFK rest of the day but will check this out and see what the CLI experience of running the benchmarks is like. Small thing: can you make the PR title "ARROW-28:" to fulfill the wishes of the patch merge tool? |
|
Per the Travis CI question: on the latest build, I see: My only other question (which doesn't have to be resolved here) is whether we should co-locate the benchmarks in the same directory as the code and unit tests (versus having a top-level directory with all the benchmarks, or something similar). |
|
Just building the benchmarks and not running them in travis CI seems OK as long as we can find a solution for the performance monitoring. I will make that change (hopefully I will have time for it tomorrow). I'm also happy to handle the merge conflict however you want. If you are waiting on a review for #28 I can try to take a look at that tomorrow as well (it looked like you were waiting on some other people to comment on it though). |
|
Title changed. |
|
On the location of benchmarks. I don't have a strong preference. I think as long as we are colocating tests and code in the same directory, I don't think there is a strong reason for separating benchmarks. If we start developing end-to-end benchmarks we can reconsider if those belong in there own directory (I would imagine it would be the same for cross language integration tests). |
| } | ||
|
|
||
| function run_other() { | ||
| # Generatic run function for test like executables that aren't actually gtest |
commented
Mar 21, 2016
|
Cool, I will wait for you to take a look at #28 (it's a large patch but contains a lot of refactoring / code cleaning, so don't feel obligated to look at all of it) before merging. I do want people to scrutinize the metadata IDL (and approach to shared memory interactions, generally) but I don't think the merge should be blocked on resolving open design questions there. |
commented
Mar 21, 2016
|
On the PR title, it needs to start exactly with "ARROW-28:", see https://github.com/apache/arrow/blob/master/dev/merge_arrow_pr.py#L221 |
commented
Mar 22, 2016
|
Hopefully the title is fixed now. I should get the review of #28 and change to only run in travis later tonight. |
commented
Mar 22, 2016
|
Good now, thank you =) |
commented
Mar 22, 2016
|
+1, thank you very much. |
commented
Mar 22, 2016
|
I asked the JIRA admins to allow anyone to assign issues, so you should be able to go back and self-assign this and other JIRAs you've worked on to yourself |
This isn't yet complete, but before I go further I think its worth asking some questions on peoples' preferences: