-
Notifications
You must be signed in to change notification settings - Fork 45
Add new profling options for Facebook/hhvm #28
Conversation
$this->tc_toptrans = array_key_exists('dump-top-trans', $o); | ||
$this->tc_topfuncs = array_key_exists('dump-top-funcs', $o); | ||
$this->pcredump = array_key_exists('dump-pcre-cache', $o); | ||
$this->profBC = array_key_exists('profBC', $o); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FB standard is:
- locals are under_scored
- members are camelCased
Hopefully I was consistent, but these new ones aren't even with each other.
d70b1ba
to
41ffdb8
Compare
|
||
invariant(is_dir($sourceRoot), 'Could not find valid source root'); | ||
|
||
$files = shell_exec("cd $sourceRoot && find . -type f"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
recursiveiteratoriterator + recursivedirectoryiterator would be nice
Given how many shell_exec() this adds, probably worth adding a helper that takes string $cmd, Vector args. |
Can you force-push a rebase+squash, ideally add the shell_exec() function, then I'll merge this? |
|
||
// Pause once benchmarking is complete to allow for manual inspection of the | ||
// HHVM or PHP process. | ||
public bool $waitAtEnd = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you for adding this!
Add new profling options for Facebook/hhvm
Going to revisit --i-am-not-benchmarking, this breaks its' purpose. |
- require --i-am-not-benchmarking as they pretty much all have a potential perf impact - removing the alignment as it's inconsistent with the rest, and can't be maintained in the future while preserving git blame.
Summary: This is commit adds a hand full of convenience options for:
The following changes were also made:
The following is still broken on devservers:
The following features would be useful in a followup PR:
The additional warmup time was added after inspecting the tc-filling behavior and discovering that tc size was still dramatically increasing after 50 warmup requests. The additional serial warmup requests ensure near optimal tc layout, while the extra complete run of parallel requests is for a handful of frameworks that continue to substantially JIT even after a high volume of single threaded requests (mostly in conjunction with broken pseudomain JITing). While inconvenient the added warmup should ensure better consistency (this was certainly observed in testing). It's also particularly important in repo-auth mode where hot functions are JITed into Ahot after appropriate profiling which may further delay warmup.
Test Plan: Tested all new options, ran hh_client