Make the XHPAST scanner batch instead of interactive. To be honest I don't quite understand the difference, but it seems to perform better.
Details
Details
- Reviewers
epriestley - Group Reviewers
Blessed Reviewers - Commits
- rPHU6e8db556dbb9: Make XHPAST scanner non-interactive
Diff Detail
Diff Detail
- Repository
- rPHU libphutil
- Branch
- master
- Lint
Lint Errors Severity Location Code Message Error support/xhpast/Makefile:6 TXT2 Tab Literal - Unit
Tests Passed - Build Status
Buildable 7809 Build 8650: [Placeholder Plan] Wait for 30 Seconds Build 8649: arc lint + arc unit
Event Timeline
Comment Actions
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.
Comment Actions
: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