object CpuProfile extends Serializable
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- CpuProfile
- Serializable
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def record(howlong: Duration, frequency: Int): CpuProfile
- def record(howlong: Duration, frequency: Int, state: State): CpuProfile
Profile CPU usage of threads in
state
forhowlong
, sampling stacks atfrequency
Hz.Profile CPU usage of threads in
state
forhowlong
, sampling stacks atfrequency
Hz.As an example, using Nyquist's sampling theorem, we see that sampling at 100Hz will accurately represent components 50Hz or less; ie. any stack that contributes 2% or more to the total CPU time.
Note that the maximum sampling frequency is set to 1000Hz. Anything greater than this is likely to consume considerable amounts of CPU while sampling.
The profiler will discount its own stacks.
TODO:
- Should we synthesize GC frames? GC has significant runtime impact, so it seems nonfaithful to exlude them.
- Limit stack depth?
- def recordInThread(howlong: Duration, frequency: Int): Future[CpuProfile]
- def recordInThread(howlong: Duration, frequency: Int, state: State): Future[CpuProfile]
Call
record
in a thread with the given parameters, returning aFuture
representing the completion of the profile. - final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()