( )⚙ D7121 copies: get copies information directly from _copies

This is an archive of the discontinued Mercurial Phabricator instance.

copies: get copies information directly from _copies
ClosedPublic

Authored by marmoute on Oct 16 2019, 12:54 PM.

Details

Summary

Performance measurement does not show any significant performance movement. This
is not surprising since p1copies() code is self._copies[0].

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

marmoute created this revision.Oct 16 2019, 12:54 PM
martinvonz accepted this revision.Oct 16 2019, 1:12 PM
martinvonz added a subscriber: martinvonz.

Performance measurement does not show any significant performance movement. This
is not surprising since p1copies() code is self._copies[0].

My testing agrees with that. However, making the same change (well, the reverse of it) on top of D7070 makes very significant difference. I have no idea why.

This revision is now accepted and ready to land.Oct 16 2019, 1:12 PM

Performance measurement does not show any significant performance movement. This
is not surprising since p1copies() code is self._copies[0].

My testing agrees with that. However, making the same change (well, the reverse of it) on top of D7070 makes very significant difference. I have no idea why.

Actually, I may have spoken too soon. hg perfpathcopies FIREFOX_BETA_59_END FIREFOX_BETA_60_BASE --config perf.run-limits='10.0-10' yields:

before:
! wall 4.595685 comb 4.600000 user 4.530000 sys 0.070000 (best of 10)
after:
! wall 4.485065 comb 4.490000 user 4.440000 sys 0.050000 (best of 10)

So there seems to be a measurable difference. Could just the function call overhead be that whole difference? Anyway, it doesn't seem worth spending time trying to figure out.

This revision was automatically updated to reflect the committed changes.
marmoute updated this revision to Diff 17271.Oct 16 2019, 5:49 PM

Performance measurement does not show any significant performance movement. This
is not surprising since p1copies() code is self._copies[0].

My testing agrees with that. However, making the same change (well, the reverse of it) on top of D7070 makes very significant difference. I have no idea why.

Actually, I may have spoken too soon. hg perfpathcopies FIREFOX_BETA_59_END FIREFOX_BETA_60_BASE --config perf.run-limits='10.0-10' yields:

before:
! wall 4.595685 comb 4.600000 user 4.530000 sys 0.070000 (best of 10)
after:
! wall 4.485065 comb 4.490000 user 4.440000 sys 0.050000 (best of 10)

So there seems to be a measurable difference. Could just the function call overhead be that whole difference? Anyway, it doesn't seem worth spending time trying to figure out.

Function call can have a large overhead, how many revision are we talking about here ?

Performance measurement does not show any significant performance movement. This
is not surprising since p1copies() code is self._copies[0].

My testing agrees with that. However, making the same change (well, the reverse of it) on top of D7070 makes very significant difference. I have no idea why.

Actually, I may have spoken too soon. hg perfpathcopies FIREFOX_BETA_59_END FIREFOX_BETA_60_BASE --config perf.run-limits='10.0-10' yields:

before:
! wall 4.595685 comb 4.600000 user 4.530000 sys 0.070000 (best of 10)
after:
! wall 4.485065 comb 4.490000 user 4.440000 sys 0.050000 (best of 10)

So there seems to be a measurable difference. Could just the function call overhead be that whole difference? Anyway, it doesn't seem worth spending time trying to figure out.

Function call can have a large overhead, how many revision are we talking about here ?

5627

[…]

So there seems to be a measurable difference. Could just the function call overhead be that whole difference? Anyway, it doesn't seem worth spending time trying to figure out.

Function call can have a large overhead, how many revision are we talking about here ?

5627

That is not much to be honest. How do you measure this?

[…]

So there seems to be a measurable difference. Could just the function call overhead be that whole difference? Anyway, it doesn't seem worth spending time trying to figure out.

Function call can have a large overhead, how many revision are we talking about here ?

5627

That is not much to be honest. How do you measure this?

By running exactly the command I shared earlier :P This is a version of mozilla-unified I've created by running hg convert --config experimental.copies.write-to=changeset-only.

[…]

So there seems to be a measurable difference. Could just the function call overhead be that whole difference? Anyway, it doesn't seem worth spending time trying to figure out.

Function call can have a large overhead, how many revision are we talking about here ?

5627

That is not much to be honest. How do you measure this?

By running exactly the command I shared earlier :P This is a version of mozilla-unified I've created by running hg convert --config experimental.copies.write-to=changeset-only.

I meant the number of changeset :-)

[…]

So there seems to be a measurable difference. Could just the function call overhead be that whole difference? Anyway, it doesn't seem worth spending time trying to figure out.

Function call can have a large overhead, how many revision are we talking about here ?

5627

That is not much to be honest. How do you measure this?

By running exactly the command I shared earlier :P This is a version of mozilla-unified I've created by running hg convert --config experimental.copies.write-to=changeset-only.

I meant the number of changeset :-)

I did a fresh clone and fished this myself. I indeed see the same number

hg log -T '.\n' -r FIREFOX_BETA_60_BASE%FIREFOX_BETA_59_END | wc -l