Page MenuHomePhabricator

Make XHPAST scanner non-interactive
ClosedPublic

Authored by joshuaspence on Aug 23 2015, 10:37 AM.

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
Branch
master
Lint
Lint Errors
SeverityLocationCodeMessage
Errorsupport/xhpast/Makefile:6TXT2Tab Literal
Unit
Tests Passed
Build Status
Buildable 7809
Build 8650: [Placeholder Plan] Wait for 30 Seconds
Build 8649: arc lint + arc unit

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.