Firefox/Performance Tools and Outreach/Performance: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Split from parent page)
 
(Fix full query)
Line 85: Line 85:
<bugzilla>
<bugzilla>
{
{
"whiteboard": "[perf-tools]",
"status_whiteboard": "[perf-tools]",
"status_whiteboard_type": "allwordssubstr",
"include_fields": ["id", "summary", "status", "whiteboard", "keywords", "assigned_to"],
"include_fields": ["id", "summary", "status", "whiteboard", "keywords", "assigned_to"],
"resolution": "---"
"resolution": "---"

Revision as of 15:50, 26 March 2018

Performance Tools

The work we are tracking in this page focuses on profiling and other performance tools.

Gecko Profiler

Gecko Profiler

P1 - View in Bugzilla

Full Query
ID Summary Status Whiteboard Keywords Assigned to
1387528 implement non-interval markers for console.timeStamp console.time, and console.timeEnd NEW [fxp]
1529131 Shutdown profiles should include profiles from all child processes ASSIGNED [fxp-profiler] Nazım Can Altınova [:canova][:canaltinova on phabricator]
1822512 Construct the sharedLibraries webidl array by using JS API instead of JS_ParseJSON ASSIGNED Nazım Can Altınova [:canova][:canaltinova on phabricator]
1829395 There are some slow profiler markers in PresShell::DoFlushPendingNotifications NEW [sp3][fxp][aabh-optimisation]
1836477 Measure CPU speed and core when sampling on Android/Linux NEW [fxp-profiler]

5 Total; 5 Open (100%); 0 Resolved (0%); 0 Verified (0%);

P2 - View in Bugzilla

Full Query
ID Summary Status Whiteboard Keywords Assigned to
1118206 Gecko Profiler uses nsThread before nsThreadManager is initialized NEW
1210446 AutoProfilerTracing should also push label frames REOPENED [fxp]
1234670 Gecko crashes when trying to profile talos locally NEW
1307215 [meta] Stack sampling must be reliable NEW meta
1321607 Expose the list of all threads which are available for profiling through nsIProfiler NEW
1329181 [meta] Profiler crashes and hangs NEW meta
1329212 [meta] Profiler performance issues / sources of skew due to profiler overhead NEW meta
1329219 [meta] Profiler memory usage issues NEW meta
1337558 [meta] Solid multi-thread profiling NEW meta
1339982 Reduced profiling experience when running with many content processes (crashes, hangs, ...) NEW
1369955 Off-the shelf control, enumeration, and documentation of performance sources ASSIGNED Jim Blandy :jimb
1382943 No stack frames during LdrLoadDll REOPENED inj+
1398137 Crash under memcpy | DoLULBacktrace REOPENED
1417184 show separate profiler markers for js parse and compile NEW
1434649 Push the worker script URL label frame even when the profiler is inactive NEW
1446575 [meta] Remote profiling for GeckoView milestone 1.1 NEW [geckoview] meta
1458088 Indicate profiler initialization time properly (especially on Linux where LUL initialization takes a long time) NEW
1463559 Hide native unsymbolicated JIT frames from Ion->C++ NEW
1465869 Store the "stack type" (JS / label stack / native stack) of a call stack frame in the frameTable NEW
1465926 Register every thread with the GeckoProfiler, and make it really hard to add new threads without registering NEW
1466261 Marker for off thread parse/compile on content process NEW
1466927 The page at https://androidify.com/en/#/create takes a very long time to load with the profiler enabled NEW
1507253 Android Gecko Profiler captures via MOZ_PROFILER_STARTUP/SHUTDOWN have to be symbolicated manually NEW
1507566 Profiler Counters not showing up in profile outputs when forcebly injected into SpiderMonkey NEW
1508838 Document the uses for the marker payloads NEW
1510302 Make the Gecko profiler work on Android x86 NEW
1522271 Capturing screenshots on Android uses too much CPU for swizzling image data NEW
1524574 mainthreadio markers missing for closing a file on Windows (NtClose) NEW [fxp]
1526317 Some content process profiles sometimes not discarded when stopping the profiler NEW
1527023 [Meta] Surface Disk IO information in the profiler NEW meta
1527110 Would be nice to have a way to figure out why we are painting NEW
1527340 Surface additional payload information for file io NEW
1527453 Examine IOInterposer thread safety NEW
1527736 ProfilerIOInterposeObserver cannot be re-enabled when restarting the profiler NEW
1527739 Write tests to verify that file io operations are working across various platforms NEW
1527741 Turn the mainthreadio feature on by default NEW
1528318 Style cause stack could use a profiler label that describes the restyled element NEW
1529108 Unwinding from libc.so on Android 32 bit fails (bad stacks during syscalls) NEW
1530610 System freeze when starting the profiler NEW
1533018 Shutdown profiles don't have correct metadata information NEW
1533779 NSPRInterposer should interpose open calls NEW
1536109 NSPRIOInterposer doesn't interpose nsLocalFile.exists NEW
1541291 Enabling the profiler can wreak havoc and causes failures of test_profile_worker*.html on Android NEW
1541360 It seems like we miss network markers on the parent process NEW
1541551 Profiles of local Windows builds get stuck "Waiting for symbol tables for library xul.pdb" NEW
1542742 Missing File IO markers for GetDirectoryEntries NEW
1547284 Make JS allocation sampling probability configurable NEW
1547989 Missing mainthread file IO markers for IsDirectory() call on Windows from MakeFileInputStream NEW
1548003 WipeContainingBlock marker is invalid NEW
1549729 Assertion failure: table.empty(), at /Users/florian/buildhg/mozilla/js/src/vm/JSScript.cpp:3353 when stopping the profiler NEW
1549735 Profiler shouldn't call JS::GetProfiledFrames off-thread NEW
1555702 Missing GPU and Parent samples in profiles when webrender screenshots are enabled NEW
1555706 With webrender screenshots enabled, the awesomebar shows in a separate panel NEW
1558116 The panel should be wider to accommodate for cross-plaform font differences NEW
1559485 Use UniqueChars in RecordAllocationInfo NEW
1560443 Profiler produces black screenshots NEW
1560601 [network markers] we should have a way to expose the delay timing before we actually create a channel NEW
1560602 [network markers] requests with a cache hit don't have timings reported. NEW
1574816 Change Windows profiler default (and smallest?) interval to 2ms NEW
1580159 [network markers] The "REDIRECT" marker should be in Redirect3Complete instead of Redirect1Begin NEW
1586618 Profile serialization should not include entries added after the serialization starts NEW
1589977 Review default profiler buffer sizes NEW regression
1594291 Write test verifying that the responsiveness is correctly captured in the profiler NEW
1595687 Running a second profiler browser tests is much slower NEW
1596235 Add innerWindowIDs for wasm frames NEW [fxp]
1609655 Add innerWindowID to profiler_add_js_marker API NEW
1609667 Investigate and see if we can add innerWindowID for GC markers. NEW
1611555 Perma PROCESS-CRASH | damp | application crashed [@ AslHashFree + 0x35028] NEW crash
1616642 The profiler label in ThreadEventQueue::GetEvent should not use the category IDLE if it's spinning on a different event target NEW
1616887 [meta] Profiling improvements for Firefox on Android NEW meta
1623752 Markers with undefined intervals present in the profile NEW
1623942 Update LUL and EHABIStackWalk tables when libraries get loaded and unloaded. Stack unwinding doesn't work on libraries that were loaded after profiler initialization (e.g. libfreebl3.so, libsoftokn3.so) NEW
1627871 Consider adding tests to monitor the health of most profile metadata NEW
1635810 [meta] LUL initialization takes too long, slows down startup profiling and content process startup NEW [fxp] meta
1635811 Consider caching LUL unwind information NEW
1640817 Some IPC markers have a negative duration NEW [fxp]
1640956 [meta] Markers 2.0 NEW meta
1640970 Remove duplicate time information from marker payloads NEW
1640987 Simplify stack serialization NEW [fxp]
1640995 Audit PROFILER_MARKER_TEXT's, and convert them to structured data NEW
1641119 Handle OutOfMemoryError exceptions when allocating Java samples buffer NEW
1646714 Add innerWindowsID and stack to the marker struct NEW
1648325 Investigate root cause of Talos intermittents when Base Profiler is running NEW
1648770 Add markers for points of nsHttpChannel suspension and resume, track suspend time NEW
1651047 Fenix crashes during first content url load when profiler is active on Android 10 NEW
1652558 Investigate using the "tracing" crate for Gecko profiler markers from Rust code NEW [fxp] Adam Brouwers-Harries [:aabh] [he/him] ⌚GMT
1658045 High amount of overhead from capturing and freeing cause callstacks for refresh driver ticks NEW
1659880 Review functions that could be interrupted by the profiler sampler NEW
1662246 Differentiate markers that are generated by cloned documents NEW
1666652 Add more unit tests for new marker API classes NEW
1669273 Intermittent SUMMARY: ThreadSanitizer: SEGV /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp:848:55 in __tsan::MemoryAccess(__tsan::ThreadState*, unsigned long, unsigned long, int, bool, bool) NEW intermittent-failure
1674930 MarkerCategory and related things should be renamed to clarify that they're "pairs" NEW
1679823 Record the optimization characteristics of the profiled build NEW
1686565 Stackwalking sometimes missing in startup profiles NEW
1687510 Deadlock when stackwalking while a DLL is being loaded NEW
1688135 On low core machines, the sampler thread seems to propagate bad performance from one thread to all sampled threads NEW
1689204 Android sampler may rapidly "catch up" if sampling takes took long, seems undesirable NEW
1690147 Final screenshot is not captured because there is no follow-up composite; should have a wait timeout for screenshot capturing NEW
1691095 Make category colors an enum NEW
1697953 Consider switching profiler buffer locking to atomics NEW [fxp]
1699681 Enabling the profiler with the JS feature to profile tests leaks windows until shutdown ASSIGNED [fxp] regression Nazım Can Altınova [:canova][:canaltinova on phabricator]
1710817 Add baseprofiler tests to catch sampling and marker issues NEW
1714538 Review all rust thread spawns in the codebase and register them with the profiler using profiler rust API NEW
1724255 Add a method in ChromeUtils to capture a profiler stack for use in a future marker NEW
1725057 Removing too many leaf frames from allocation stacks on Windows? NEW
1728243 Navigation::Start marker in content process on start up is missing URL in fenix NEW
1728845 Add tests for the profiler Rust API NEW
1730997 Consider making "cpu" feature non-optional NEW [fxp-profiler]
1735074 The profiler memory track is relative, should be absolute. Need to know the initial memory at the beginning of profiling. (Counter should be initialized with current number of allocated bytes) NEW [fxp-profiler] [memory]
1741717 Content process is missing in geckoview_example (fenix?) unless I load another page (allrecipes.com) NEW
1749523 It looks like JIT "unsymbolicated" frames are showing up in profiles nowadays NEW
1751036 Crash [@ mozilla::ProfilerChild::ProcessPendingUpdate()] when restarting for an update NEW
1752859 [network-markers] Some network markers of the content process don't have an end and don't exist on the parent NEW
1753704 [network markers] Canceled requests are not showed as such in the content process NEW
1753912 Check that timestamps sent through ProfileBufferChunkManagerUpdate and DestroyReleasedChunksAtOrBefore are related to each other NEW
1756519 The base profiler doesn't collect CPU time, and the front-end workaround for missing CPU deltas gives misleading results NEW
1757350 Reduce overhead of profiler::AllocCallback and FreeCallback NEW
1762526 Stop using a dedicated thread for profiler startup and control NEW memory-footprint
1766970 Write test for multiple counters NEW
1766971 Review json-streaming code that could skip adjacent entries of the same type NEW
1769010 Profiles with re-used thread ids are confusing NEW
1773286 Add an API to unregister a thread from another thread, by its thread id NEW
1774326 Move marker type to top-level property, potentially using a unique type id NEW
1774328 Gecko Profiler JSON marker schemas should also define a list of properties, and marker payloads should be stored as arrays NEW
1774334 Don't output more than one sample for the duration of SLEEPing/idle periods NEW
1782125 Startup profiling deadlocks on Windows NEW
1792530 Long content process profile missing when capturing a profile soon after closing the tab NEW [fxp]
1796684 Lots of jank in the profiler on latest nightly. NEW
1804062 Deadlock when profiling and recording power metrics NEW
1805922 Inline functions don't show up in profiles of local builds. NEW Emilio Cobos Álvarez [:emilio]
1811493 Profiles without the JS feature have null stack samples NEW
1811807 Store the marker stacks inside the main profiler buffer rather than their own buffers NEW [fxp]
1812025 The java threads are sampled even when the nostacksampling feature is used to reduce overhead NEW
1829433 GeckoProfilerEntryMarker takes time in js::RunScript even when Firefox profiler isn't running NEW [sp3][fxp][aabh-optimisation]
1833147 Enabling Firefox Profiler on large page crashes Firefox NEW
1870022 Change the type of Reflow markers to "Reflow" and add a dedicated schema for them NEW [fxp] regression
1873170 Reentrancy deadlock in TimerThreadWrapper / nsTimerImpl on a profiler-only path NEW
1878882 Mutex cycle causing deadlocks due to ProfilerBuffers and IPC ASSIGNED [fxp] Nazım Can Altınova [:canova][:canaltinova on phabricator]
1886326 Crash when profiling AOT-compiled Blazor WebAssembly application NEW
1887890 Add better frame labels for certificate stuff NEW [fxp]
1891138 Crash in js::gc::HeaderWord::get when doing native allocation profiling of www.itemkey.co.uk/workerTests/workerTest.html NEW
1892602 Profiling for startup on android misses a small chunk of startup. NEW [fxp]
1897436 Capture the active tab id at the end of the profiling session instead of start NEW [fxp]
1899722 Rust threads don't get their correct "stack top" during thread registration NEW
1900589 Make the memory replace malloc machinery always available for dev edition NEW [fxp]
1904639 Ensure that signal control of the profiler works on Android NEW
1905079 Firefox Desktop and Fenix Mobile have separate preset lists NEW
1906151 Sending SIGTERM to the profiler while writing a profile to disk results in a truncated profile file. NEW
1911581 Add documentation for the marker-based graphs NEW [fxp]
1912882 "Debugging a hang on macOS" documentation needs updating NEW [fxp]
1913292 Change some XML Parsing category NEW [fxp]
1913474 Enable building/using the profiler rust bindings outside of mozilla-central NEW [fxp]
1924060 Have a special handling for data urls in "Image Paint" markers NEW [fxp]
1924061 Store URLs of "Image Paint" markers as unique strings NEW
1929941 Profiler hang in profiler_capture_backtrace_into when capture stack from AddTask NEW
1931364 Screenshots aren't recorded when starting the profiler via StartProfiler from the content process NEW [fxp]
1933333 [meta] Add flow annotations NEW [fxp] meta Jeff Muizelaar [:jrmuizel]
1935580 Make memory counters absolute NEW [fxp] Paul Bone [:pbone]
1940045 Document changes to profiler testing utilities in firefox-source-docs NEW [fxp] Adam Brouwers-Harries [:aabh] [he/him] ⌚GMT
1940920 Avoid repeated allocation via bincode when emitting markers from Rust code NEW [fxp]
1942604 Crash when profiling translation benchmark page NEW [fxp]
1942624 The inference process cannot be profiled in non-debug + opt NEW [fxp]
1946039 A lot of time spent initializing large buffers in profiler_capture_backtrace NEW [fxp]
1947589 Add the option to do frame pointer stackwalking on Android NEW [fxp]
1947661 Add a memory counter for total physical memory ASSIGNED [fxp] Paul Bone [:pbone]
1955125 Baseprofiler handoff takes too long if sampling interval is large (waits until old sampler thread has finished sleeping) NEW [fxp]
1957535 Consider switching from Lul to framepointer unwinding an aarch64 Android REOPENED Markus Stange [:mstange]
1960730 Android profile markers can not be captured off the main thread NEW Marc Leclair [:mleclair]
1965357 Capturing profiles using signals in CI sometimes fails during profile symbolication NEW [fxp]
1980178 [meta] Add the ability to retrieve JS sources from the profiler frontend NEW meta
1995443 Crash in [@ mozilla::detail::InvalidArrayIndex_CRASH | mozilla::Vector<T>::operator[] | ProfileBuffer::MaybeStreamExecutionTraceToJSON<T>] ASSIGNED crash, regression Alex Thayer [:alexical] (she/her)
1999953 Include the start line/column numbers of inline scripts in the source table ASSIGNED Nazım Can Altınova [:canova][:canaltinova on phabricator]

172 Total; 172 Open (100%); 0 Resolved (0%); 0 Verified (0%);

Meta bugs - View in Bugzilla

Full Query
ID Summary Status Whiteboard Keywords Assigned to
761253 [Meta] SpiderMonkey Gecko Profiler Integration NEW meta
1273322 [meta] Programmatic access to Profiler Data NEW DevAdvocacy, meta
1307215 [meta] Stack sampling must be reliable NEW meta
1329108 [meta] Clean up the nsIProfiler API NEW meta
1329137 [meta] Additional profiler data sources NEW meta
1329161 [meta] Add useful markers / profiler labels (pseudo stacks) NEW meta
1329181 [meta] Profiler crashes and hangs NEW meta
1329212 [meta] Profiler performance issues / sources of skew due to profiler overhead NEW meta
1329219 [meta] Profiler memory usage issues NEW meta
1337558 [meta] Solid multi-thread profiling NEW meta
1355649 [meta] Unify Gecko's performance data sources NEW meta
1366030 [meta] Win64 profiler/stackwalker stability issues NEW meta, perf
1431175 [meta] Solid multi-process profiling NEW meta
1446575 [meta] Remote profiling for GeckoView milestone 1.1 NEW [geckoview] meta
1527023 [Meta] Surface Disk IO information in the profiler NEW meta
1553419 [meta] Make network markers awesome NEW meta
1557566 [meta] De-duplicate code that was copied from Gecko Profiler to Base Profiler NEW [fxp] meta
1557568 [meta] Address TODOs/FIXMEs in Base Profiler NEW meta
1577656 [meta] Profiler output performance issues NEW meta
1609654 [meta] General marker API improvements NEW meta
1616887 [meta] Profiling improvements for Firefox on Android NEW meta
1635810 [meta] LUL initialization takes too long, slows down startup profiling and content process startup NEW [fxp] meta
1640956 [meta] Markers 2.0 NEW meta
1652553 [meta] Make Rust profiling as easy as C++ profiling NEW meta
1669979 [Meta] Several label frames need adding to ensure category colors are correct in profiles NEW meta
1724872 [Meta] Review profile.meta to provide better information to the front-end NEW meta
1755962 [meta] IPC marker improvements NEW [fxp] meta
1774626 [meta] Profiler improvements for performance tests NEW meta
1823370 [meta] Control the profiler using signals NEW [fxp-profiler] meta
1885378 [meta] Profiler TSan issues NEW [fxp] meta
1933333 [meta] Add flow annotations NEW [fxp] meta Jeff Muizelaar [:jrmuizel]
1977465 [meta] Migrate all markers to BaseMarkerType-based marker schema syntax NEW meta
1980178 [meta] Add the ability to retrieve JS sources from the profiler frontend NEW meta

33 Total; 33 Open (100%); 0 Resolved (0%); 0 Verified (0%);

perf.html

perf.html

Sprint planning - View in GitHub

Assigned issues - View in GitHub

Gecko Profiler add-on

Gecko profiler add-on

Open issues - View in GitHub

Assigned issues - View in GitHub

perf-tools bugs

[perf-tools]

Tracked performance tools bugs - View in Bugzilla

Full Query
ID Summary Status Whiteboard Keywords Assigned to
1124223 implement performance.memory NEW [MemShrink:P2][perf-tools] dev-doc-needed
1250290 Make performance timeline data available via WebDriver NEW [platform-rel-Frameworks][platform-rel-Angular][platform-rel-Google][platform-rel-Facebook][platform-rel-LinkedIn][platform-rel-Wikipedia][perf-tools][webpagetest] DevAdvocacy, pi-marionette-server
1450363 Track pages doing lots of memory allocations NEW [perf-tools]

3 Total; 3 Open (100%); 0 Resolved (0%); 0 Verified (0%);

Resolved - View in Bugzilla

Full Query
ID Summary Status Whiteboard Keywords Assigned to Priority
1298381 Implement Time to First Contentful Paint (TTFCP) for Telemetry/Profiler RESOLVED [perf-tools] perf Randell Jesup [:jesup] (needinfo me) P3
1299118 Implement Time to Interactive (TTI) for Telemetry/Profiler RESOLVED [perf-tools] perf Randell Jesup [:jesup] (needinfo me) P3
1377479 Symbolication v5 (batch, function offset, no module mention) RESOLVED [perf-tools] Peter Bengtsson [:peterbe] --
1414921 mach try fuzzy doesn't support: mozharness: --geckoProfile RESOLVED [PI:April][perf-tools] Andrew Halberstadt [:ahal] --
1419679 Keep track of tabs & workers awakenings in the Scheduler RESOLVED [perf-tools] Tarek Ziadé (:tarek) --
1419681 Track Firefox activity to detect battery-draining pages RESOLVED [perf-tools] Tarek Ziadé (:tarek) --
1419683 about:energy demo RESOLVED [perf-tools] Tarek Ziadé (:tarek) P3
1425103 [meta] tracking bug for making --geckoProfile awesome for developers locally and on try server RESOLVED [perf-tools] meta P2
1425303 Add ability to open gecko profiling treeherder job artifacts directly into the perf.html viewer RESOLVED [PI:April][perf-tools] Robert Wood [:rwood] --
1425308 Make it easier to view talos gecko profiles in perf-html.io when running locally RESOLVED [PI:May][perf-tools] Robert Wood [:rwood] --
1437438 Add counters in DocGroup and WorkerPrivate to track their activities RESOLVED [perf-tools] Tarek Ziadé (:tarek) P2
1441051 Remove the need to run `mach buildsymbols` after `mach build [binary]` in order to get profiles with symbols for local Windows builds RESOLVED [perf-tools] Markus Stange [:mstange] --
1443443 Extend PContent to retrieve Performance Counters in the parent process RESOLVED [perf-tools] Tarek Ziadé (:tarek) P3
1444296 Include some traversal statistics in style tracing marker RESOLVED [perf-tools] Xidorn Quan [:xidorn] UTC+10 P1
1444796 perfActor.startProfiler should have a option for entries, internal and etc RESOLVED [perf-tools] Makoto Kato [:m_kato] (fever, slow response) P2
1447768 Extend ChromeUtils.RequestPerformanceMetrics to the main process RESOLVED [perf-tools] Tarek Ziadé (:tarek) P2
1447931 Track disk i/o activity RESOLVED [perf-tools][necko-triaged] Tarek Ziadé (:tarek) P3
1452535 Using MOZ HTTP log adds a lot of overhead RESOLVED [necko-triaged][perf-tools] Kershaw Chang [:kershaw] P2
1456629 Create a python tool to view local gecko profiles in perf-html.io RESOLVED [PI:May][perf-tools] Robert Wood [:rwood] --
1460306 Please also check symbols.mozilla.org/try/... for symbol files VERIFIED [perf-tools] Peter Bengtsson [:peterbe] --
1462019 Developer tools are unable to attach to applications with embedded GeckoView when targetSDKversion is 26 RESOLVED [geckoview:fxr][geckoview:klar:p2][perf-tools] Makoto Kato [:m_kato] (fever, slow response) P1
1463431 Display a flame-like animation when a tab uses a lot of resources [prototype] RESOLVED [perf-tools] Tarek Ziadé (:tarek) --
1468550 Track webextension activity RESOLVED [perf-tools] Tarek Ziadé (:tarek) P3
1474286 Throw a JS exception in ChromeUtils::RequestPerformanceMetrics if pref is off RESOLVED [perf-tools] Tarek Ziadé (:tarek) P3
1477677 about:performance should display information from the new performance counters when they are enabled VERIFIED [perf-tools] Florian Quèze [:florian] P1
1477717 Prototype webextension tracking RESOLVED [perf-tools] Tarek Ziadé (:tarek) P1
1478831 [meta] New about:performance (M1) based on new performance counters RESOLVED [perf-tools] meta --
1484156 Avoid crash on first run in about:performance RESOLVED [perf-tools] Florian Quèze [:florian] --
1489504 Show WebExtension API activity in about:performance RESOLVED [perf-tools] Florian Quèze [:florian] --
1496780 Make the about:performance layout match the UX mockup VERIFIED [perf-tools] Florian Quèze [:florian] --
1496782 Hide subitems by default in about:performance VERIFIED [perf-tools] Florian Quèze [:florian] --
1502084 [meta] New about:performance (M2) RESOLVED [perf-tools] meta --

32 Total; 0 Open (0%); 28 Resolved (87.5%); 4 Verified (12.5%);