WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
157015
Improve jsc --help and making sampling options
https://bugs.webkit.org/show_bug.cgi?id=157015
Summary
Improve jsc --help and making sampling options
Joseph Pecoraro
Reported
2016-04-25 19:35:18 PDT
* SUMMARY Improve jsc --help and making sampling options • --help doesn't mention --reportSamplingProfilerData • --reportSamplingProfilerData is hard to remember, lets call it --sample • --samplingProfilerTimingInterval is hard to remember, lets call it --sampleInterval • --options used to print out all options and exit, allowing you to discover options, now it only prints overloaded options • lets make --options output all options with help data • lets keep --dumpOptions outputting just overridden options * NOTES Before: $ jsc --help Usage: jsc [options] [files] [-- arguments] -d Dumps bytecode (debug builds only) -e Evaluate argument as script code -f Specifies a source file (deprecated) -h|--help Prints this help message -i Enables interactive mode (default if no files are specified) -m Execute as a module -s Installs signal handlers that exit on a crash (Unix platforms only) -p <file> Outputs profiling data to a file -x Output exit code before terminating --options Dumps all JSC VM options and exits --dumpOptions Dumps all JSC VM options before continuing --<jsc VM option>=<value> Sets the specified JSC VM option $ jsc --options All JSC runtime options: reoptimizationRetryCounterMax=21 (default: 0) $ jsc --dumpOptions All JSC runtime options: reoptimizationRetryCounterMax=21 (default: 0) >>> After: $ jsc --help Usage: jsc [options] [files] [-- arguments] -d Dumps bytecode (debug builds only) -e Evaluate argument as script code -f Specifies a source file (deprecated) -h|--help Prints this help message -i Enables interactive mode (default if no files are specified) -m Execute as a module -s Installs signal handlers that exit on a crash (Unix platforms only) -p <file> Outputs profiling data to a file -x Output exit code before terminating --sample Collects and outputs sampling profiler data --options Dumps all JSC VM options and exits --dumpOptions Dumps all non-default JSC VM options before continuing --<jsc VM option>=<value> Sets the specified JSC VM option $ jsc --options All JSC runtime options: validateOptions=false ... crashes if mis-typed JSC options were passed to the VM dumpOptions=0 ... dumps JSC options (0 = None, 1 = Overridden only, 2 = All, 3 = Verbose) useLLInt=true ... allows the LLINT to be used if true useJIT=true ... allows the baseline JIT to be used if true useDFGJIT=true ... allows the DFG JIT to be used if true useRegExpJIT=true ... allows the RegExp JIT to be used if true reportMustSucceedExecutableAllocations=false maxPerThreadStackUsage=4194304 reservedZoneSize=131072 errorModeReservedZoneSize=65536 crashIfCantAllocateJITMemory=false jitMemoryReservationSize=0 ... Set this number to change the executable allocation size in ExecutableAllocatorFixedVMPool. (In bytes.) useSeparatedWXHeap=false forceCodeBlockLiveness=false forceICFailure=false repatchCountForCoolDown=10 initialCoolDownCount=20 repatchBufferingCountdown=10 dumpGeneratedBytecodes=false dumpBytecodeLivenessResults=false validateBytecode=false forceDebuggerBytecodeGeneration=false forceProfilerBytecodeGeneration=false useFunctionDotArguments=true useTailCalls=true alwaysUseShadowChicken=false shadowChickenLogSize=1000 shadowChickenStackSizeLimit=100000 dumpDisassembly=false ... dumps disassembly of all JIT compiled code upon compilation asyncDisassembly=false dumpDFGDisassembly=false ... dumps disassembly of DFG function upon compilation dumpFTLDisassembly=false ... dumps disassembly of FTL function upon compilation dumpAllDFGNodes=false bytecodeRangeToDFGCompile=<null> ... bytecode size range to allow DFG compilation on, e.g. 1:100 bytecodeRangeToFTLCompile=<null> ... bytecode size range to allow FTL compilation on, e.g. 1:100 dfgWhitelist="" ... file with list of function signatures to allow DFG compilation on dumpSourceAtDFGTime=false ... dumps source code of JS function being DFG compiled dumpBytecodeAtDFGTime=false ... dumps bytecode of JS function being DFG compiled dumpGraphAfterParsing=false dumpGraphAtEachPhase=false dumpDFGGraphAtEachPhase=false ... dumps the DFG graph at each phase DFG of complitaion (note this excludes DFG graphs during FTL compilation) dumpDFGFTLGraphAtEachPhase=false ... dumps the DFG graph at each phase DFG of complitaion when compiling FTL code dumpB3GraphAtEachPhase=false ... dumps the B3 graph at each phase of compilation dumpAirGraphAtEachPhase=false ... dumps the Air graph at each phase of compilation verboseDFGByteCodeParsing=false verboseCompilation=false verboseFTLCompilation=false logCompilationChanges=false printEachOSRExit=false validateGraph=false validateGraphAtEachPhase=false verboseValidationFailure=false verboseOSR=false verboseFTLOSRExit=false verboseCallLink=false verboseCompilationQueue=false reportCompileTimes=false ... dumps JS function signature and the time it took to compile reportFTLCompileTimes=false ... dumps JS function signature and the time it took to FTL compile reportTotalCompileTimes=false verboseCFA=false verboseFTLToJSThunk=false verboseFTLFailure=false alwaysComputeHash=false testTheFTL=false verboseSanitizeStack=false useGenerationalGC=true eagerlyUpdateTopCallFrame=false useOSREntryToDFG=true useOSREntryToFTL=true useFTLJIT=true ... allows the FTL JIT to be used if true useFTLTBAA=true validateFTLOSRExitLiveness=false b3AlwaysFailsBeforeCompile=false b3AlwaysFailsBeforeLink=false ftlCrashes=false clobberAllRegsInFTLICSlowPath=false useAccessInlining=true maxAccessVariantListSize=13 megamorphicLoadCost=999 usePolyvariantDevirtualization=true usePolymorphicAccessInlining=true usePolymorphicCallInlining=true usePolymorphicCallInliningForNonStubStatus=false maxPolymorphicCallVariantListSize=15 maxPolymorphicCallVariantListSizeForTopTier=5 maxPolymorphicCallVariantsForInlining=5 frequentCallThreshold=2 minimumCallToKnownRate=0.51 createPreHeaders=true useMovHintRemoval=true usePutStackSinking=true useObjectAllocationSinking=true useConcurrentJIT=true ... allows the DFG / FTL compilation in threads other than the executing JS thread numberOfDFGCompilerThreads=1 numberOfFTLCompilerThreads=7 priorityDeltaOfDFGCompilerThreads=0 priorityDeltaOfFTLCompilerThreads=0 useProfiler=false disassembleBaselineForProfiler=true useArchitectureSpecificOptimizations=true breakOnThrow=false maximumOptimizationCandidateInstructionCount=100000 maximumFunctionForCallInlineCandidateInstructionCount=180 maximumFunctionForClosureCallInlineCandidateInstructionCount=100 maximumFunctionForConstructInlineCandidateInstructionCount=100 maximumFTLCandidateInstructionCount=20000 maximumInliningDepth=5 ... maximum allowed inlining depth. Depth of 1 means no inlining maximumInliningRecursion=2 maximumInliningCallerSize=10000 maximumVarargsForInlining=100 usePolyvariantCallInlining=true usePolyvariantByIdInlining=true useMaximalFlushInsertionPhase=false ... Setting to true allows the DFG's MaximalFlushInsertionPhase to run. maximumBinaryStringSwitchCaseLength=50 maximumBinaryStringSwitchTotalLength=2000 jitPolicyScale=1 ... scale JIT thresholds to this specified ratio between 0.0 (compile ASAP) and 1.0 (compile like normal). forceEagerCompilation=false thresholdForJITAfterWarmUp=500 thresholdForJITSoon=100 thresholdForOptimizeAfterWarmUp=1000 thresholdForOptimizeAfterLongWarmUp=1000 thresholdForOptimizeSoon=1000 executionCounterIncrementForLoop=1 executionCounterIncrementForEntry=15 thresholdForFTLOptimizeAfterWarmUp=100000 thresholdForFTLOptimizeSoon=1000 ftlTierUpCounterIncrementForLoop=1 ftlTierUpCounterIncrementForReturn=15 ftlOSREntryFailureCountForReoptimization=15 ftlOSREntryRetryThreshold=100 evalThresholdMultiplier=10 maximumEvalCacheableSourceLength=256 randomizeExecutionCountsBetweenCheckpoints=false maximumExecutionCountsBetweenCheckpointsForBaseline=1000 maximumExecutionCountsBetweenCheckpointsForUpperTiers=50000 likelyToTakeSlowCaseMinimumCount=20 couldTakeSlowCaseMinimumCount=10 osrExitCountForReoptimization=100 osrExitCountForReoptimizationFromLoop=5 reoptimizationRetryCounterMax=21 (default: 0) minimumOptimizationDelay=1 maximumOptimizationDelay=5 desiredProfileLivenessRate=0.75 desiredProfileFullnessRate=0.35 doubleVoteRatioForDoubleFormat=2 structureCheckVoteRatioForHoisting=1 checkArrayVoteRatioForHoisting=1 minimumNumberOfScansBetweenRebalance=100 numberOfGCMarkers=7 opaqueRootMergeThreshold=1000 minHeapUtilization=0.8 minCopiedBlockUtilization=0.9 minMarkedBlockUtilization=0.9 slowPathAllocsBetweenGCs=0 ... force a GC on every Nth slow path alloc, where N is specified by this option percentCPUPerMBForFullTimer=0.0003125 percentCPUPerMBForEdenTimer=0.0025 collectionTimerMaxPercentCPU=0.05 forceWeakRandomSeed=false forcedWeakRandomSeed=0 useZombieMode=false ... debugging option to scribble over dead objects with 0xdeadbeef useImmortalObjects=false ... debugging option to keep all objects alive forever dumpObjectStatistics=false logGC=None ... debugging option to log GC activity (0 = None, 1 = Basic, 2 = Verbose) useGC=true gcAtEnd=false ... If true, the jsc CLI will do a GC before exiting forceGCSlowPaths=false ... If true, we will force all JIT fast allocations down their slow paths. gcMaxHeapSize=0 forceRAMSize=0 recordGCPauseTimes=false logHeapStatisticsAtExit=false useTypeProfiler=false useControlFlowProfiler=false useSamplingProfiler=false sampleInterval=1000 ... Time between stack traces in microseconds. collectSamplingProfilerDataForJSCShell=false ... This corresponds to the JSC shell's --sample option. alwaysGeneratePCToCodeOriginMap=false ... This will make sure we always generate a PCToCodeOriginMap for JITed code. verifyHeap=false numberOfGCCyclesToRecordForVerification=3 useExceptionFuzz=false fireExceptionFuzzAt=0 validateDFGExceptionHandling=false ... Causes the DFG to emit code validating exception handling for each node that can exit useExecutableAllocationFuzz=false fireExecutableAllocationFuzzAt=0 fireExecutableAllocationFuzzAtOrAfter=0 verboseExecutableAllocationFuzz=false useOSRExitFuzz=false fireOSRExitFuzzAtStatic=0 fireOSRExitFuzzAt=0 fireOSRExitFuzzAtOrAfter=0 logB3PhaseTimes=false rareBlockPenalty=0.001 airSpillsEverything=false logAirRegisterPressure=false maxB3TailDupBlockSize=3 maxB3TailDupBlockSuccessors=3 useDollarVM=false ... installs the $vm debugging tool in global objects functionOverrides="" ... file with debugging overrides for function bodies watchdog=0 ... watchdog timeout (0 = Disabled, N = a timeout period of N milliseconds) useICStats=false dumpModuleRecord=false dumpModuleLoadingState=false exposeInternalModuleLoader=false ... expose the internal module loader object to the global space for debugging useSuperSampler=false $ jsc --dumpOptions All JSC runtime options: reoptimizationRetryCounterMax=21 (default: 0) >>>
Attachments
[PATCH] Proposed Fix
(5.58 KB, patch)
2016-04-25 19:39 PDT
,
Joseph Pecoraro
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Joseph Pecoraro
Comment 1
2016-04-25 19:39:12 PDT
Created
attachment 277311
[details]
[PATCH] Proposed Fix
WebKit Commit Bot
Comment 2
2016-04-25 19:40:22 PDT
Attachment 277311
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/ChangeLog:10: Need whitespace between colon and description [changelog/filechangedescriptionwhitespace] [5] ERROR: Source/JavaScriptCore/ChangeLog:11: Need whitespace between colon and description [changelog/filechangedescriptionwhitespace] [5] Total errors found: 2 in 4 files If any of these errors are false positives, please file a bug against check-webkit-style.
WebKit Commit Bot
Comment 3
2016-04-26 09:47:08 PDT
Comment on
attachment 277311
[details]
[PATCH] Proposed Fix Clearing flags on attachment: 277311 Committed
r200092
: <
http://trac.webkit.org/changeset/200092
>
WebKit Commit Bot
Comment 4
2016-04-26 09:47:11 PDT
All reviewed patches have been landed. Closing bug.
Csaba Osztrogonác
Comment 5
2016-05-17 06:29:18 PDT
(In reply to
comment #0
)
> * SUMMARY > Improve jsc --help and making sampling options > > • --help doesn't mention --reportSamplingProfilerData > • --reportSamplingProfilerData is hard to remember, lets call it --sample > • --samplingProfilerTimingInterval is hard to remember, lets call it > --sampleInterval > • --options used to print out all options and exit, allowing you to > discover options, now it only prints overloaded options > • lets make --options output all options with help data > • lets keep --dumpOptions outputting just overridden options
Thanks for getting back the old/new --options behaviour . :)
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug