Page MenuHomePhabricator

Make XHPAST scanner non-interactive
ClosedPublic

Authored by joshuaspence on Aug 23 2015, 10:37 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Nov 24, 1:40 AM
Unknown Object (File)
Tue, Nov 19, 1:57 AM
Unknown Object (File)
Wed, Nov 6, 6:30 PM
Unknown Object (File)
Wed, Nov 6, 6:30 PM
Unknown Object (File)
Wed, Nov 6, 6:30 PM
Unknown Object (File)
Wed, Nov 6, 6:30 PM
Unknown Object (File)
Wed, Nov 6, 6:30 PM
Unknown Object (File)
Oct 23 2024, 10:45 PM
Subscribers

Details

Summary

Make the XHPAST scanner batch instead of interactive. To be honest I don't quite understand the difference, but it seems to perform better.

Test Plan

Ran arc lint --everything --never-apply-patches --xprofile=profile.json in rP. Compared before and after.

Diff Detail

Repository
rPHU libphutil
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

joshuaspence retitled this revision from to Make XHPAST scanner non-interactive.
joshuaspence updated this object.
joshuaspence edited the test plan for this revision. (Show Details)
joshuaspence added a reviewer: epriestley.

Does that performance improvement reproduce in isolated runs of xhpast?

I think this is likely fine otherwise -- whatever the problem was probably vanished when XHP support was ripped out.

:Yeah, it seems to be (almost) consistently slightly faster:

> for i in $(seq 1 100); do for x in before after;  do time ./support/xhpast/xhpast.$x < ../phabricator/src/__phutil_library_map__.php  > /dev/null; done; done

real    0m0.057s
user    0m0.049s
sys 0m0.008s

real    0m0.055s
user    0m0.047s
sys 0m0.008s

real    0m0.055s
user    0m0.051s
sys 0m0.004s

real    0m0.055s
user    0m0.051s
sys 0m0.004s

real    0m0.053s
user    0m0.045s
sys 0m0.008s

real    0m0.055s
user    0m0.051s
sys 0m0.004s

real    0m0.053s
user    0m0.053s
sys 0m0.000s

real    0m0.055s
user    0m0.050s
sys 0m0.004s

real    0m0.053s
user    0m0.053s
sys 0m0.000s

real    0m0.054s
user    0m0.047s
sys 0m0.008s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.055s
user    0m0.047s
sys 0m0.008s

real    0m0.053s
user    0m0.053s
sys 0m0.000s

real    0m0.054s
user    0m0.039s
sys 0m0.015s

real    0m0.053s
user    0m0.053s
sys 0m0.000s

real    0m0.054s
user    0m0.041s
sys 0m0.012s

real    0m0.055s
user    0m0.046s
sys 0m0.008s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.053s
user    0m0.053s
sys 0m0.000s

real    0m0.054s
user    0m0.042s
sys 0m0.012s

real    0m0.053s
user    0m0.040s
sys 0m0.012s

real    0m0.054s
user    0m0.047s
sys 0m0.008s

real    0m0.055s
user    0m0.047s
sys 0m0.008s

real    0m0.051s
user    0m0.043s
sys 0m0.008s

real    0m0.055s
user    0m0.039s
sys 0m0.016s

real    0m0.051s
user    0m0.050s
sys 0m0.000s

real    0m0.056s
user    0m0.047s
sys 0m0.011s

real    0m0.051s
user    0m0.047s
sys 0m0.004s

real    0m0.055s
user    0m0.043s
sys 0m0.012s

real    0m0.051s
user    0m0.039s
sys 0m0.012s

real    0m0.055s
user    0m0.039s
sys 0m0.016s

real    0m0.051s
user    0m0.050s
sys 0m0.004s

real    0m0.055s
user    0m0.047s
sys 0m0.008s

real    0m0.053s
user    0m0.044s
sys 0m0.008s

real    0m0.053s
user    0m0.048s
sys 0m0.004s

real    0m0.054s
user    0m0.049s
sys 0m0.004s

real    0m0.053s
user    0m0.044s
sys 0m0.008s

real    0m0.054s
user    0m0.034s
sys 0m0.019s

real    0m0.054s
user    0m0.053s
sys 0m0.000s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.052s
user    0m0.040s
sys 0m0.012s

real    0m0.054s
user    0m0.045s
sys 0m0.014s

real    0m0.052s
user    0m0.048s
sys 0m0.004s

real    0m0.053s
user    0m0.034s
sys 0m0.019s

real    0m0.055s
user    0m0.054s
sys 0m0.000s

real    0m0.051s
user    0m0.035s
sys 0m0.016s

real    0m0.055s
user    0m0.039s
sys 0m0.016s

real    0m0.050s
user    0m0.046s
sys 0m0.004s

real    0m0.056s
user    0m0.036s
sys 0m0.020s

real    0m0.050s
user    0m0.046s
sys 0m0.004s

real    0m0.055s
user    0m0.043s
sys 0m0.012s

real    0m0.050s
user    0m0.050s
sys 0m0.000s

real    0m0.055s
user    0m0.047s
sys 0m0.012s

real    0m0.051s
user    0m0.047s
sys 0m0.004s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.052s
user    0m0.047s
sys 0m0.004s

real    0m0.055s
user    0m0.051s
sys 0m0.004s

real    0m0.050s
user    0m0.042s
sys 0m0.008s

real    0m0.054s
user    0m0.046s
sys 0m0.009s

real    0m0.051s
user    0m0.042s
sys 0m0.008s

real    0m0.055s
user    0m0.050s
sys 0m0.004s

real    0m0.051s
user    0m0.043s
sys 0m0.008s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.051s
user    0m0.038s
sys 0m0.013s

real    0m0.055s
user    0m0.051s
sys 0m0.004s

real    0m0.050s
user    0m0.052s
sys 0m0.000s

real    0m0.055s
user    0m0.055s
sys 0m0.000s

real    0m0.053s
user    0m0.036s
sys 0m0.016s

real    0m0.053s
user    0m0.042s
sys 0m0.014s

real    0m0.054s
user    0m0.045s
sys 0m0.008s

real    0m0.052s
user    0m0.048s
sys 0m0.004s

real    0m0.053s
user    0m0.042s
sys 0m0.011s

real    0m0.052s
user    0m0.044s
sys 0m0.008s

real    0m0.053s
user    0m0.049s
sys 0m0.004s

real    0m0.052s
user    0m0.044s
sys 0m0.008s

real    0m0.053s
user    0m0.053s
sys 0m0.001s

real    0m0.052s
user    0m0.044s
sys 0m0.008s

real    0m0.053s
user    0m0.053s
sys 0m0.004s

real    0m0.054s
user    0m0.049s
sys 0m0.004s

real    0m0.052s
user    0m0.043s
sys 0m0.008s

real    0m0.054s
user    0m0.042s
sys 0m0.012s

real    0m0.050s
user    0m0.049s
sys 0m0.000s

real    0m0.055s
user    0m0.051s
sys 0m0.004s

real    0m0.050s
user    0m0.046s
sys 0m0.004s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.052s
user    0m0.052s
sys 0m0.000s

real    0m0.055s
user    0m0.050s
sys 0m0.005s

real    0m0.050s
user    0m0.042s
sys 0m0.008s

real    0m0.055s
user    0m0.054s
sys 0m0.000s

real    0m0.050s
user    0m0.042s
sys 0m0.008s

real    0m0.054s
user    0m0.042s
sys 0m0.012s

real    0m0.053s
user    0m0.034s
sys 0m0.019s

real    0m0.052s
user    0m0.048s
sys 0m0.004s

real    0m0.053s
user    0m0.041s
sys 0m0.012s

real    0m0.052s
user    0m0.052s
sys 0m0.000s

real    0m0.053s
user    0m0.053s
sys 0m0.000s

real    0m0.052s
user    0m0.044s
sys 0m0.008s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.053s
user    0m0.044s
sys 0m0.008s

real    0m0.054s
user    0m0.049s
sys 0m0.004s

real    0m0.052s
user    0m0.044s
sys 0m0.008s

real    0m0.054s
user    0m0.049s
sys 0m0.008s

real    0m0.053s
user    0m0.048s
sys 0m0.004s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.052s
user    0m0.048s
sys 0m0.004s

real    0m0.053s
user    0m0.049s
sys 0m0.004s

real    0m0.053s
user    0m0.052s
sys 0m0.000s

real    0m0.054s
user    0m0.042s
sys 0m0.011s

real    0m0.052s
user    0m0.052s
sys 0m0.000s

real    0m0.053s
user    0m0.041s
sys 0m0.013s

real    0m0.053s
user    0m0.044s
sys 0m0.008s

real    0m0.053s
user    0m0.049s
sys 0m0.008s

real    0m0.055s
user    0m0.047s
sys 0m0.008s

real    0m0.054s
user    0m0.049s
sys 0m0.004s

real    0m0.052s
user    0m0.052s
sys 0m0.000s

real    0m0.053s
user    0m0.053s
sys 0m0.000s

real    0m0.053s
user    0m0.045s
sys 0m0.008s

real    0m0.054s
user    0m0.049s
sys 0m0.004s

real    0m0.053s
user    0m0.044s
sys 0m0.008s

real    0m0.053s
user    0m0.049s
sys 0m0.004s

real    0m0.053s
user    0m0.049s
sys 0m0.009s

real    0m0.053s
user    0m0.042s
sys 0m0.011s

real    0m0.052s
user    0m0.036s
sys 0m0.016s

real    0m0.054s
user    0m0.053s
sys 0m0.000s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.054s
user    0m0.037s
sys 0m0.016s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.053s
user    0m0.045s
sys 0m0.008s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.053s
user    0m0.048s
sys 0m0.009s

real    0m0.053s
user    0m0.053s
sys 0m0.000s

real    0m0.053s
user    0m0.041s
sys 0m0.011s

real    0m0.054s
user    0m0.049s
sys 0m0.004s

real    0m0.053s
user    0m0.052s
sys 0m0.000s

real    0m0.053s
user    0m0.042s
sys 0m0.011s

real    0m0.055s
user    0m0.042s
sys 0m0.013s

real    0m0.051s
user    0m0.043s
sys 0m0.008s

real    0m0.055s
user    0m0.051s
sys 0m0.004s

real    0m0.051s
user    0m0.039s
sys 0m0.012s

real    0m0.055s
user    0m0.042s
sys 0m0.013s

real    0m0.051s
user    0m0.047s
sys 0m0.004s

real    0m0.056s
user    0m0.044s
sys 0m0.012s

real    0m0.050s
user    0m0.050s
sys 0m0.000s

real    0m0.056s
user    0m0.048s
sys 0m0.008s

real    0m0.051s
user    0m0.043s
sys 0m0.009s

real    0m0.056s
user    0m0.044s
sys 0m0.015s

real    0m0.054s
user    0m0.041s
sys 0m0.012s

real    0m0.053s
user    0m0.049s
sys 0m0.004s

real    0m0.055s
user    0m0.038s
sys 0m0.017s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.054s
user    0m0.041s
sys 0m0.012s

real    0m0.053s
user    0m0.049s
sys 0m0.004s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.054s
user    0m0.053s
sys 0m0.004s

real    0m0.054s
user    0m0.054s
sys 0m0.000s

real    0m0.053s
user    0m0.053s
sys 0m0.000s

real    0m0.055s
user    0m0.050s
sys 0m0.004s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.054s
user    0m0.042s
sys 0m0.011s

real    0m0.054s
user    0m0.041s
sys 0m0.012s

real    0m0.053s
user    0m0.034s
sys 0m0.019s

real    0m0.055s
user    0m0.046s
sys 0m0.008s

real    0m0.053s
user    0m0.045s
sys 0m0.011s

real    0m0.054s
user    0m0.053s
sys 0m0.000s

real    0m0.054s
user    0m0.042s
sys 0m0.011s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.055s
user    0m0.055s
sys 0m0.000s

real    0m0.051s
user    0m0.047s
sys 0m0.004s

real    0m0.057s
user    0m0.036s
sys 0m0.020s

real    0m0.055s
user    0m0.055s
sys 0m0.000s

real    0m0.054s
user    0m0.045s
sys 0m0.009s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.054s
user    0m0.049s
sys 0m0.004s

real    0m0.055s
user    0m0.039s
sys 0m0.016s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.055s
user    0m0.051s
sys 0m0.008s

real    0m0.054s
user    0m0.045s
sys 0m0.008s

real    0m0.054s
user    0m0.046s
sys 0m0.008s

real    0m0.054s
user    0m0.045s
sys 0m0.008s

real    0m0.055s
user    0m0.046s
sys 0m0.008s

real    0m0.054s
user    0m0.054s
sys 0m0.000s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.055s
user    0m0.051s
sys 0m0.005s

real    0m0.049s
user    0m0.049s
sys 0m0.000s

real    0m0.058s
user    0m0.050s
sys 0m0.008s

real    0m0.055s
user    0m0.046s
sys 0m0.009s

real    0m0.056s
user    0m0.043s
sys 0m0.020s

real    0m0.054s
user    0m0.050s
sys 0m0.004s

real    0m0.056s
user    0m0.056s
sys 0m0.000s

real    0m0.053s
user    0m0.049s
sys 0m0.004s

real    0m0.056s
user    0m0.055s
sys 0m0.000s

real    0m0.051s
user    0m0.039s
sys 0m0.012s

real    0m0.056s
user    0m0.056s
sys 0m0.000s

real    0m0.053s
user    0m0.045s
sys 0m0.008s

real    0m0.056s
user    0m0.048s
sys 0m0.008s

real    0m0.050s
user    0m0.049s
sys 0m0.000s

real    0m0.057s
user    0m0.052s
sys 0m0.004s

real    0m0.054s
user    0m0.046s
sys 0m0.008s
epriestley edited edge metadata.
This revision is now accepted and ready to land.Aug 24 2015, 12:13 PM
This revision was automatically updated to reflect the committed changes.