git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] perf: accommodate for MacOSX

From
Lars Schneider <larsxschneider@gmail.com>
Date
Jun 19, 2016, 16:56 UTC
Message-ID
<9A11C3D1-3DAC-489F-BDF9-F4D409E8D3F7@gmail.com>
In-Reply-To
<ae429d2481111f7ad1927ef22e3a691d4c99ebd7.1466254995.git.johannes.schindelin@gmx.de>
> On 18 Jun 2016, at 15:03, Johannes Schindelin <johannes.schindelin@gmx.de> wrote:
> 
> As this developer has no access to MacOSX developer setups anymore,
> Travis becomes the best bet to run performance tests on that OS.

We don't run the performance tests on Travis CI right now. Maybe we should? With your patch below it should work, right?

I only saw one error on my local OS X machine here: https://github.com/git/git/blob/05219a1276341e72d8082d76b7f5ed394b7437a4/t/perf/p0000-perf-lib-sanity.sh#L26

Does the export of foo not work properly on OS X? "$foo" is empty...
- Lars
Show 61 quoted lines
> However, on MacOSX /usr/bin/time is that good old BSD executable that
> no Linux user cares about, as demonstrated by the perf-lib.sh's use
> of GNU-ish extensions. And by the hard-coded path.
> 
> Let's just work around this issue by using gtime on MacOSX, the
> Homebrew-provided GNU implementation onto which pretty much every
> MacOSX power user falls back anyway.
> 
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> Published-As: https://github.com/dscho/git/releases/tag/perf-macosx-v1
> 
> 	This is another of those patches that came up in my rebase--helper
> 	work, even if it is not quite obvious from the patch ;-)
> 
> .travis.yml        | 2 +-
> t/perf/perf-lib.sh | 6 +++++-
> 2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index c20ec54..0e569bc 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -82,7 +82,7 @@ before_install:
>       brew tap homebrew/binary --quiet
>       brew_force_set_latest_binary_hash perforce
>       brew_force_set_latest_binary_hash perforce-server
> -      brew install git-lfs perforce-server perforce gettext
> +      brew install git-lfs perforce-server perforce gettext gnu-time
>       brew link --force gettext
>       ;;
>     esac;
> diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh
> index 18c363e..773f955 100644
> --- a/t/perf/perf-lib.sh
> +++ b/t/perf/perf-lib.sh
> @@ -127,11 +127,15 @@ test_checkout_worktree () {
> # Performance tests should never fail.  If they do, stop immediately
> immediate=t
> 
> +# Perf tests require GNU time
> +case "$(uname -s)" in Darwin) GTIME="${GTIME:-gtime}";; esac
> +GTIME="${GTIME:-/usr/bin/time}"
> +
> test_run_perf_ () {
> 	test_cleanup=:
> 	test_export_="test_cleanup"
> 	export test_cleanup test_export_
> -	/usr/bin/time -f "%E %U %S" -o test_time.$i "$SHELL" -c '
> +	"$GTIME" -f "%E %U %S" -o test_time.$i "$SHELL" -c '
> . '"$TEST_DIRECTORY"/test-lib-functions.sh'
> test_export () {
> 	[ $# != 0 ] || return 0
> -- 
> 2.9.0.119.gb7b8d21
> 
> base-commit: 05219a1276341e72d8082d76b7f5ed394b7437a4
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 2 of 11 in “perf: accommodate for MacOSX”
  1. perf: accommodate for MacOSXJohannes Schindelin, Jun 18, 2016
  2. Lars SchneiderJun 19, 2016
  3. Johannes SchindelinJun 20, 2016
  4. Junio C HamanoJun 20, 2016
  5. Lars SchneiderJun 21, 2016
  6. Johannes SchindelinJun 21, 2016
  7. Lars SchneiderJun 21, 2016
  8. Johannes SchindelinJun 21, 2016
  9. perf: accommodate for MacOSXJohannes Schindelin, Jun 21, 2016
  10. Lars SchneiderJun 21, 2016
  11. Junio C HamanoJun 21, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.