Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/tools/profiler/docs/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 22 kB image not shown  

Quelle  profilerclasses.umlet.uxf   Sprache: unbekannt

 
Spracherkennung für: .uxf vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="15.0.0">
  <zoom_level>10</zoom_level>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>80</x>
      <y>370</y>
      <w>340</w>
      <h>190</h>
    </coordinates>
    <panel_attributes>ThreadInfo
--
-mName: nsCString
-mRegisterTime: TimeStamp
-mThreadId: int
-mIsMainThread: bool
--
NS_INLINE_DECL_THREADSAFE_REFCOUNTING
+Name()
+RegisterTime()
+ThreadId()
+IsMainThread()
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>470</x>
      <y>300</y>
      <w>600</w>
      <h>260</h>
    </coordinates>
    <panel_attributes>RacyRegisteredThread
--
-mProfilingStackOwner: NotNull<RefPtr<ProfilingStackOwner>>
-mThreadId
-mSleep: Atomic<int> /* AWAKE, SLEEPING_NOT_OBSERVED, SLEEPING_OBSERVED */
-mIsBeingProfiled: Atomic<bool, Relaxed>
--
+SetIsBeingProfiled()
+IsBeingProfiled()
+ReinitializeOnResume()
+CanDuplicateLastSampleDueToSleep()
+SetSleeping()
+SetAwake()
+IsSleeping()
+ThreadId()
+ProfilingStack()
+ProfilingStackOwner()</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>470</x>
      <y>650</y>
      <w>350</w>
      <h>360</h>
    </coordinates>
    <panel_attributes>RegisteredThread
--
-mPlatformData: UniquePlatformData
-mStackTop: const void*
-mThread: nsCOMPtr<nsIThread>
-mContext: JSContext*
-mJSSampling: enum {INACTIVE, ACTIVE_REQUESTED, ACTIVE, INACTIVE_REQUESTED}
-mmJSFlags: uint32_t
--
+RacyRegisteredThread()
+GetPlatformData()
+StackTop()
+GetRunningEventDelay()
+SizeOfIncludingThis()
+SetJSContext()
+ClearJSContext()
+GetJSContext()
+Info(): RefPtr<ThreadInfo>
+GetEventTarget(): nsCOMPtr<nsIEventTarget>
+ResetMainThread(nsIThread*)
+StartJSSampling()
+StopJSSampling()
+PollJSSampling()
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>750</x>
      <y>550</y>
      <w>180</w>
      <h>120</h>
    </coordinates>
    <panel_attributes>lt=<<<<<-
mRacyRegisteredThread</panel_attributes>
    <additional_attributes>10.0;100.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>290</x>
      <y>550</y>
      <w>230</w>
      <h>120</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mThreadInfo: RefPtr<></panel_attributes>
    <additional_attributes>210.0;100.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>70</x>
      <y>660</y>
      <w>340</w>
      <h>190</h>
    </coordinates>
    <panel_attributes>PageInformation
--
-mBrowsingContextID: uint64_t
-mInnerWindowID: uint64_t
-mUrl: nsCString
-mEmbedderInnerWindowID: uint64_t
--
NS_INLINE_DECL_THREADSAFE_REFCOUNTING
+SizeOfIncludingThis(MallocSizeOf)
+Equals(PageInformation*)
+StreamJSON(SpliceableJSONWriter&)
+InnerWindowID()
+BrowsingContextID()
+Url()
+EmbedderInnerWindowID()
+BufferPositionWhenUnregistered(): Maybe<uint64_t>
+NotifyUnregistered(aBufferPosition: uint64_t)</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>760</x>
      <y>1890</y>
      <w>570</w>
      <h>120</h>
    </coordinates>
    <panel_attributes>ProfilerBacktrace
--
-mName: UniqueFreePtr<char>
-mThreadId: int
-mProfileChunkedBuffer: UniquePtr<ProfileChunkedBuffer>
-mProfileBuffer: UniquePtr<ProfileBuffer>
--
+StreamJSON(SpliceableJSONWriter&, aProcessStartTime: TimeStamp, UniqueStacks&)
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>20</x>
      <y>2140</y>
      <w>620</w>
      <h>580</h>
    </coordinates>
    <panel_attributes>ProfileChunkedBuffer
--
-mMutex: BaseProfilerMaybeMutex
-mChunkManager: ProfileBufferChunkManager*
-mOwnedChunkManager: UniquePtr<ProfileBufferChunkManager>
-mCurrentChunk: UniquePtr<ProfileBufferChunk>
-mNextChunks: UniquePtr<ProfileBufferChunk>
-mRequestedChunkHolder: RefPtr<RequestedChunkRefCountedHolder>
-mNextChunkRangeStart: ProfileBufferIndex
-mRangeStart: Atomic<ProfileBufferIndex, ReleaseAcquire>
-mRangeEnd: ProfileBufferIndex
-mPushedBlockCount: uint64_t
-mClearedBlockCount: Atomic<uint64_t, ReleaseAcquire>
--
+Byte = ProfileBufferChunk::Byte
+Length = ProfileBufferChunk::Length
+IsThreadSafe()
+IsInSession()
+ResetChunkManager()
+SetChunkManager()
+Clear()
+BufferLength(): Maybe<size_t>
+SizeOfExcludingThis(MallocSizeOf)
+SizeOfIncludingThis(MallocSizeOf)
+GetState()
+IsThreadSafeAndLockedOnCurrentThread(): bool
+LockAndRun(Callback&&)
+ReserveAndPut(CallbackEntryBytes&&, Callback<auto(Maybe<ProfileBufferEntryWriter>&)>&&)
+Put(aEntryBytes: Length, Callback<auto(Maybe<ProfileBufferEntryWriter>&)>&&)
+PutFrom(const void*, Length)
+PutObjects(const Ts&...)
+PutObject(const T&)
+GetAllChunks()
+Read(Callback<void(Reader&)>&&): bool
+ReadEach(Callback<void(ProfileBufferEntryReader& [, ProfileBufferBlockIndex])>&&)
+ReadAt(ProfileBufferBlockIndex, Callback<void(Maybe<ProfileBufferEntryReader>&&)>&&)
+AppendContents</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>810</x>
      <y>2100</y>
      <w>500</w>
      <h>620</h>
    </coordinates>
    <panel_attributes>ProfileBufferChunk
--
+Header: {
    mOffsetFirstBlock; mOffsetPastLastBlock; mDoneTimeStamp;
    mBufferBytes; mBlockCount; mRangeStart; mProcessId;
 }
-InternalHeader: { mHeader: Header; mNext: UniquePtr<ProfileBufferChunk>; }
--
-mInternalHeader: InternalHeader
-mBuffer: Byte /* First byte */
--
+Byte = uint8_t
+Length = uint32_t
+SpanOfBytes = Span<Byte>
/+Create(aMinBufferBytes: Length): UniquePtr<ProfileBufferChunk>/
+ReserveInitialBlockAsTail(Length): SpanOfBytes
+ReserveBlock(Length): { SpanOfBytes, ProfileBufferBlockIndex }
+MarkDone()
+MarkRecycled()
+ChunkHeader()
+BufferBytes()
+ChunkBytes()
+SizeOfExcludingThis(MallocSizeOf)
+SizeOfIncludingThis(MallocSizeOf)
+RemainingBytes(): Length
+OffsetFirstBlock(): Length
+OffsetPastLastBlock(): Length
+BlockCount(): Length
+ProcessId(): int
+SetProcessId(int)
+RangeStart(): ProfileBufferIndex
+SetRangeStart(ProfileBufferIndex)
+BufferSpan(): Span<const Byte>
+ByteAt(aOffset: Length)
+GetNext(): maybe-const ProfileBufferChunk*
+ReleaseNext(): UniquePtr<ProfileBufferChunk>
+InsertNext(UniquePtr<ProfileBufferChunk>&&)
+Last(): const ProfileBufferChunk*
+SetLast(UniquePtr<ProfileBufferChunk>&&)
/+Join(UniquePtr<ProfileBufferChunk>&&, UniquePtr<ProfileBufferChunk>&&)/
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>120</x>
      <y>2850</y>
      <w>570</w>
      <h>350</h>
    </coordinates>
    <panel_attributes>ProfileBufferEntryReader
--
-mCurrentSpan: SpanOfConstBytes
-mNextSpanOrEmpty: SpanOfConstBytes
-mCurrentBlockIndex: ProfileBufferBlockIndex
-mNextBlockIndex: ProfileBufferBlockIndex
--
+RemainingBytes(): Length
+SetRemainingBytes(Length)
+CurrentBlockIndex(): ProfileBufferBlockIndex
+NextBlockIndex(): ProfileBufferBlockIndex
+EmptyIteratorAtOffset(Length): ProfileBufferEntryReader
+operator*(): const Byte&
+operator++(): ProfileBufferEntryReader&
+operator+=(Length): ProfileBufferEntryReader&
+operator==(const ProfileBufferEntryReader&)
+operator!=(const ProfileBufferEntryReader&)
+ReadULEB128<T>(): T
+ReadBytes(void*, Length)
+ReadIntoObject(T&)
+ReadIntoObjects(Ts&...)
+ReadObject<T>(): T</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>740</x>
      <y>2850</y>
      <w>570</w>
      <h>300</h>
    </coordinates>
    <panel_attributes>ProfileBufferEntryWriter
--
-mCurrentSpan: SpanOfBytes
-mNextSpanOrEmpty: SpanOfBytes
-mCurrentBlockIndex: ProfileBufferBlockIndex
-mNextBlockIndex: ProfileBufferBlockIndex
--
+RemainingBytes(): Length
+CurrentBlockIndex(): ProfileBufferBlockIndex
+NextBlockIndex(): ProfileBufferBlockIndex
+operator*(): Byte&
+operator++(): ProfileBufferEntryReader&
+operator+=(Length): ProfileBufferEntryReader&
/+ULEB128Size(T): unsigned/
+WriteULEB128(T)
/+SumBytes(const Ts&...): Length/
+WriteFromReader(ProfileBufferEntryReader&, Length)
+WriteObject(const T&)
+WriteObjects(const T&)</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>120</x>
      <y>3270</y>
      <w>570</w>
      <h>80</h>
    </coordinates>
    <panel_attributes>ProfileBufferEntryReader::Deserializer<T>
/to be specialized for all types read from ProfileBufferEntryReader/
--
/+ReadInto(ProfileBufferEntryReader&, T&)/
/+Read<T>(ProfileBufferEntryReader&): T/</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>740</x>
      <y>3270</y>
      <w>570</w>
      <h>80</h>
    </coordinates>
    <panel_attributes>ProfileBufferEntryWriter::Serializer<T>
/to be specialized for all types written into ProfileBufferEntryWriter/
--
/+Bytes(const T&): Length/
/+Write(ProfileBufferEntryWriter&, const T&)/</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>330</x>
      <y>2710</y>
      <w>110</w>
      <h>160</h>
    </coordinates>
    <panel_attributes>lt=.>
<<creates>></panel_attributes>
    <additional_attributes>10.0;10.0;60.0;140.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>430</x>
      <y>2710</y>
      <w>360</w>
      <h>160</h>
    </coordinates>
    <panel_attributes>lt=.>
<<creates>></panel_attributes>
    <additional_attributes>10.0;10.0;340.0;140.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>660</x>
      <y>2710</y>
      <w>260</w>
      <h>160</h>
    </coordinates>
    <panel_attributes>lt=.>
<<points into>></panel_attributes>
    <additional_attributes>10.0;140.0;240.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>870</x>
      <y>2710</y>
      <w>140</w>
      <h>160</h>
    </coordinates>
    <panel_attributes>lt=.>
<<points into>></panel_attributes>
    <additional_attributes>10.0;140.0;80.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>630</x>
      <y>2170</y>
      <w>200</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mCurrentChunk</panel_attributes>
    <additional_attributes>10.0;20.0;180.0;20.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>630</x>
      <y>2230</y>
      <w>200</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mNextChunks</panel_attributes>
    <additional_attributes>10.0;20.0;180.0;20.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>1100</x>
      <y>2030</y>
      <w>170</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mInternalHeader.mNext</panel_attributes>
    <additional_attributes>10.0;70.0;10.0;20.0;150.0;20.0;150.0;70.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>490</x>
      <y>3190</y>
      <w>70</w>
      <h>100</h>
    </coordinates>
    <panel_attributes>lt=.>
<<uses>></panel_attributes>
    <additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>580</x>
      <y>3190</y>
      <w>230</w>
      <h>100</h>
    </coordinates>
    <panel_attributes>lt=.>
<<uses>></panel_attributes>
    <additional_attributes>10.0;10.0;210.0;80.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>50</x>
      <y>1620</y>
      <w>570</w>
      <h>410</h>
    </coordinates>
    <panel_attributes>ProfileBuffer
--
-mFirstSamplingTimeNs: double
-mLastSamplingTimeNs: double
-mIntervalNs, etc.: ProfilerStats
--
+IsThreadSafe(): bool
+AddEntry(const ProfileBufferEntry&): uint64_t
+AddThreadIdEntry(int): uint64_t
+PutObjects(Kind, const Ts&...): ProfileBufferBlockIndex
+CollectCodeLocation(...)
+AddJITInfoForRange(...)
+StreamSamplesToJSON(SpliceableJSONWriter&, aThreadId: int, aSinceTime: double, UniqueStacks&)
+StreamMarkersToJSON(SpliceableJSONWriter&, ...)
+StreamPausedRangesToJSON(SpliceableJSONWriter&, aSinceTime: double)
+StreamProfilerOverheadToJSON(SpliceableJSONWriter&, ...)
+StreamCountersToJSON(SpliceableJSONWriter&, ...)
+DuplicateLsstSample
+DiscardSamplesBeforeTime(aTime: double)
+GetEntry(aPosition: uint64_t): ProfileBufferEntry
+SizeOfExcludingThis(MallocSizeOf)
+SizeOfIncludingThis(MallocSizeOf)
+CollectOverheadStats(...)
+GetProfilerBufferInfo(): ProfilerBufferInfo
+BufferRangeStart(): uint64_t
+BufferRangeEnd(): uint64_t</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>690</x>
      <y>1620</y>
      <w>230</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>ProfileBufferEntry
--
+mKind: Kind
+mStorage: uint8_t[kNumChars=8]</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>930</x>
      <y>1620</y>
      <w>440</w>
      <h>130</h>
    </coordinates>
    <panel_attributes>UniqueJSONStrings
--
-mStringTableWriter: SpliceableChunkedJSONWriter
-mStringHashToIndexMap: HashMap<HashNumber, uint32_t>
--
+SpliceStringTableElements(SpliceableJSONWriter&)
+WriteProperty(JSONWriter&, aName: const char*, aStr: const char*)
+WriteElement(JSONWriter&, aStr: const char*)
+GetOrAddIndex(const char*): uint32_t</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>680</x>
      <y>1760</y>
      <w>470</w>
      <h>110</h>
    </coordinates>
    <panel_attributes>UniqueStack
--
-mFrameTableWriter: SpliceableChunkedJSONWriter
-mFrameToIndexMap: HashMap<FrameKey, uint32_t, FrameKeyHasher>
-mStackTableWriter: SpliceableChunkedJSONWriter
-mStackToIndexMap: HashMap<StackKey, uint32_t, StackKeyHasher>
-mJITInfoRanges: Vector<JITFrameInfoForBufferRange></panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>320</x>
      <y>2020</y>
      <w>230</w>
      <h>140</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mEntries: ProfileChunkedBuffer&</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;120.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>610</x>
      <y>1640</y>
      <w>100</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>lt=.>
<<uses>></panel_attributes>
    <additional_attributes>10.0;20.0;80.0;20.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>610</x>
      <y>1710</y>
      <w>340</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>lt=.>
<<uses>></panel_attributes>
    <additional_attributes>10.0;20.0;320.0;20.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>610</x>
      <y>1800</y>
      <w>90</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>lt=.>
<<uses>></panel_attributes>
    <additional_attributes>10.0;20.0;70.0;20.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>610</x>
      <y>1900</y>
      <w>170</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mProfileBuffer</panel_attributes>
    <additional_attributes>150.0;20.0;10.0;20.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>590</x>
      <y>1940</y>
      <w>250</w>
      <h>220</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mProfileChunkedBuffer</panel_attributes>
    <additional_attributes>170.0;10.0;10.0;200.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>20</x>
      <y>1030</y>
      <w>490</w>
      <h>550</h>
    </coordinates>
    <panel_attributes>CorePS
--
/-sInstance: CorePS*/
-mMainThreadId: int
-mProcessStartTime: TimeStamp
-mCoreBuffer: ProfileChunkedBuffer
-mRegisteredThreads: Vector<UniquePtr<RegisteredThread>>
-mRegisteredPages: Vector<RefPtr<PageInformation>>
-mCounters: Vector<BaseProfilerCount*>
-mLul: UniquePtr<lul::LUL> /* linux only */
-mProcessName: nsAutoCString
-mJsFrames: JsFrameBuffer
--
+Create
+Destroy
+Exists(): bool
+AddSizeOf(...)
+MainThreadId()
+ProcessStartTime()
+CoreBuffer()
+RegisteredThreads(PSLockRef)
+JsFrames(PSLockRef)
/+AppendRegisteredThread(PSLockRef, UniquePtr<RegisteredThread>)/
/+RemoveRegisteredThread(PSLockRef, RegisteredThread*)/
+RegisteredPages(PSLockRef)
/+AppendRegisteredPage(PSLockRef, RefPtr<PageInformation>)/
/+RemoveRegisteredPage(PSLockRef, aRegisteredInnerWindowID: uint64_t)/
/+ClearRegisteredPages(PSLockRef)/
+Counters(PSLockRef)
+AppendCounter
+RemoveCounter
+Lul(PSLockRef)
+SetLul(PSLockRef, UniquePtr<lul::LUL>)
+ProcessName(PSLockRef)
+SetProcessName(PSLockRef, const nsACString&)
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>20</x>
      <y>1570</y>
      <w>110</w>
      <h>590</h>
    </coordinates>
    <panel_attributes>lt=<<<<<-
mCoreBuffer</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;570.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>160</x>
      <y>840</y>
      <w>150</w>
      <h>210</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mRegisteredPages</panel_attributes>
    <additional_attributes>10.0;190.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>250</x>
      <y>840</y>
      <w>240</w>
      <h>210</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mRegisteredThreads</panel_attributes>
    <additional_attributes>10.0;190.0;220.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>920</x>
      <y>860</y>
      <w>340</w>
      <h>190</h>
    </coordinates>
    <panel_attributes>SamplerThread
--
-mSampler: Sampler
-mActivityGeneration: uint32_t
-mIntervalMicroseconds: int
-mThread /* OS-specific */
-mPostSamplingCallbackList: UniquePtr<PostSamplingCallbackListItem>
--
+Run()
+Stop(PSLockRef)
+AppendPostSamplingCallback(PSLockRef, PostSamplingCallback&&)</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>1060</x>
      <y>600</y>
      <w>340</w>
      <h>190</h>
    </coordinates>
    <panel_attributes>Sampler
--
-mOldSigprofHandler: sigaction
-mMyPid: int
-mSamplerTid: int
+sSigHandlerCoordinator
--
+Disable(PSLockRef)
+SuspendAndSampleAndResumeThread(PSLockRef, const RegisteredThread&, aNow: TimeStamp, const Func&)
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>1190</x>
      <y>780</y>
      <w>90</w>
      <h>100</h>
    </coordinates>
    <panel_attributes>lt=<<<<<-
mSampler</panel_attributes>
    <additional_attributes>10.0;80.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>610</x>
      <y>1130</y>
      <w>470</w>
      <h>400</h>
    </coordinates>
    <panel_attributes>ActivePS
--
/-sInstance: ActivePS*/
-mGeneration: const uint32_t
/-sNextGeneration: uint32_t/
-mCapacity: const PowerOfTwo
-mDuration: const Maybe<double>
-mInterval: const double /* milliseconds */
-mFeatures: const uint32_t
-mFilters: Vector<std::string>
-mActiveBrowsingContextID: uint64_t
-mProfileBufferChunkManager: ProfileBufferChunkManagerWithLocalLimit
-mProfileBuffer: ProfileBuffer
-mLiveProfiledThreads: Vector<LiveProfiledThreadData>
-mDeadProfiledThreads: Vector<UniquePtr<ProfiledThreadData>>
-mDeadProfiledPages: Vector<RefPtr<PageInformation>>
-mSamplerThread: SamplerThread* const
-mInterposeObserver: RefPtr<ProfilerIOInterposeObserver>
-mPaused: bool
-mWasPaused: bool /* linux */
-mBaseProfileThreads: UniquePtr<char[]>
-mGeckoIndexWhenBaseProfileAdded: ProfileBufferBlockIndex
-mExitProfiles: Vector<ExitProfile>
--
+</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>970</x>
      <y>1040</y>
      <w>140</w>
      <h>110</h>
    </coordinates>
    <panel_attributes>lt=<<<<-
mSamplerThread</panel_attributes>
    <additional_attributes>10.0;90.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>500</x>
      <y>160</y>
      <w>510</w>
      <h>100</h>
    </coordinates>
    <panel_attributes>bg=red
This document pre-dates the generated image profilerclasses-20220913.png!
Unfortunately, the changes to make the image were lost.

This previous version may still be useful to start reconstructing the image,
if there is a need to update it.</panel_attributes>
    <additional_attributes/>
  </element>
</diagram>

[ Dauer der Verarbeitung: 0.29 Sekunden  ]