Search completed in 1.48 seconds.
Performance fundamentals - Web Performance
performance means efficiency.
... in the context of open web apps, this document explains in general what
performance is, how the browser platform helps improve it, and what tools and processes you can use to test and improve it.
... what is
performance?
...And 19 more matches
Performance Monitoring: RUM vs synthetic monitoring - Web Performance
synthetic monitoring and real user monitoring (rum) are two approaches for monitoring and providing insight into web
performance.
... rum and synthetic monitoring provide for different views of
performance and have benefits, good use cases and shortfalls.
... rum is generally best suited for understanding long-term trends whereas synthetic monitoring is very well suited to regression testing and mitigating shorter-term
performance issues during development.
...And 14 more matches
Animation performance and frame rate - Web Performance
the
performance cost of animating a css property can vary from one property to another, and animating expensive css properties can result in jank as the browser struggles to hit a smooth frame rate.
... for animated media, such as video and animated gifs, the main
performance concern is file size - downloading the file size fast enough to not negatively impact
performance is the greatest issue.
... code based animations, be it css, svg, <canvas>, webgl or other javascript animations, can cause
performance issues even if the bandwidth footprint is small.
...And 8 more matches
CSS and JavaScript animation performance - Web Performance
in this article, we analyse the
performance differences between css- and javascript-based animation.
... in terms of
performance, there is no difference between implementing an animation with css transitions or animations.
...
performance comparison: transitions vs.
...And 7 more matches
Performance budgets - Web Performance
a
performance budget is a limit to prevent regressions.
... why do i need a
performance budget?
...it's a tradeoff between user experience, against other
performance indicators (e.g.
...And 7 more matches
Web Performance
web
performance is the objective measurements and the perceived user experience of load time and runtime.
... web
performance is how long a site takes to load, become interactive and responsive, and how smooth the content is during user interactions - is the scrolling smooth?
...web
performance includes both objective measurements like time to load, frames per second, and time to become interactive, and subjective experiences of how long it felt like it took the content to load.
...And 53 more matches
Performance API - Web APIs
the high resolution time standard defines a
performance interface that supports client-side latency measurements within applications.
... the
performance interfaces are considered high resolution because they are accurate to a thousandth of a millisecond (subject to hardware or software constraints).
...as such, the
performance api defines a domhighrestimestamp type rather than using the date.now() interface.
...And 32 more matches
PerformanceTiming - Web APIs
please use the
performancenavigationtiming interface instead.
... the
performancetiming interface is a legacy interface kept for backwards compatibility and contains properties that offer
performance timing information for various events which occur during the loading and use of the current page.
... you get a
performancetiming object describing your page using the window.
performance.timing property.
...And 30 more matches
The "why" of web performance - Learn web development
overview:
performance next web
performance is all about making websites fast, including making slow processes seem fast.
... this article provides an introduction into why web
performance is important to site visitors and for your business goals.
... objective: to gain basic familiarity of why web
performance is important for good user experience.
...And 27 more matches
PerformanceResourceTiming - Web APIs
the
performanceresourcetiming interface enables retrieval and analysis of detailed network timing data regarding the loading of an application's resources.
...additionally, the interface extends
performanceentry with other properties which provide data about the size of the fetched resource as well as the type of resource that initiated the fetch.
... <div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/
performanceentry" target="_top"><rect x="1" y="1" width="160" height="50" fill="#fff" stroke="#d4dde4" stroke-width="2px" /><text x="81" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performanceentry</text></a><polyline points="161,25 171,20 171,30 161,25" stroke="#d4dde4" fill="none"/><line x1="171" y1="25" x2="201" y2="25" stroke="#d4dde4"/><a xlink:href="/docs/web/api/pe...
...And 26 more matches
Performance - Web APIs
the
performance interface provides access to
performance-related information for the current page.
... it's part of the high resolution time api, but is enhanced by the
performance timeline api, the navigation timing api, the user timing api, and the resource timing api.
... an object of this type can be obtained by calling the window.
performance read-only attribute.
...And 25 more matches
Measuring performance - Learn web development
previous overview:
performance next meauring
performance provides an important metric to help you asses the success of your app, site, or web service.
... for example, you can use
performance metrics to determine how your app performs in comparison to a competitor or you can compare your app's
performance across releases.
... this article introduces web perfomrance metrics that you can use to measure and optimize your site's
performance.
...And 22 more matches
Performance Timeline - Web APIs
the
performance timeline api defines extensions to the
performance interface to support client-side latency measurements within applications.
... the extensions provide interfaces to retrieve
performance entry metrics based on specific filter criteria.
... the standard also includes interfaces that allow an application to define
performance observer callbacks that are notified when specific
performance events are added to the browser's
performance timeline.
...And 22 more matches
Navigation and resource timings - Web Performance
the general
performance timings below have been deprecated in favor of the
performance entry api, which provides for marking and measuring times along the navigation and resource loading process.
...
performance timings the
performancetiming api, a javascript api for measuring the loading
performance of the requested page, is deprecated but supported in all browsers.
... it has been replaced with the
performancenavigationtiming api.
...And 22 more matches
The business case for web performance - Learn web development
previous overview:
performance we've discussed the importance of web
performance.
... you've learned what you need to do to optimize for web
performance.
... but how do you convince your clients and/or management to prioritize and invest in
performance?
...And 20 more matches
Web performance - Learn web development
this is known as web
performance, and in this module you'll focus on the fundamentals of how to create performant websites.
... the rest of our beginner's learning material tried to stick to web best practices such as
performance and accessibility as much as possible, however, it is good to focus specifically on such topics too, and make sure you are familiar with them.
... learning pathway while knowing html, css, and javascript is needed for implementing many web
performance improvement recommendations, knowing how to build applications is not a necessary pre-condition for understanding and measuring web
performance.
...And 20 more matches
Perceived performance - Learn web development
previous overview:
performance next perceived
performance is how fast a website seems to the user.
... how a user perceives your
performance is as important, or perhaps more important, than any objective statistic, but it's subjective, and not as readily measurable.
... perceived
performance is user perspective, not a metric.
...And 18 more matches
PerformanceNavigationTiming - Web APIs
the
performancenavigationtiming interface provides methods and properties to store and retrieve metrics regarding the browser's document navigation events.
... <div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/
performanceentry" target="_top"><rect x="1" y="1" width="160" height="50" fill="#fff" stroke="#d4dde4" stroke-width="2px" /><text x="81" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performanceentry</text></a><polyline points="161,25 171,20 171,30 161,25" stroke="#d4dde4" fill="none"/><line x1="171" y1="25" x2=...
..."201" y2="25" stroke="#d4dde4"/><a xlink:href="/docs/web/api/
performancenavigationtiming" target="_top"><rect x="201" y="1" width="270" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="336" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performancenavigationtiming</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface extends the following
performanceentry properties for navigation
performance entry types by qualifying and constraining them as follows:
performanceentry.entrytype read only returns "navigation".
...And 18 more matches
What is web performance? - Learn web development
previous overview:
performance next web
performance is all about making web sites fast, including making slow processes seem fast.
...this article provides a brief introduction to objective, measureable web
performance*, looking at what technologies, techniques, and tools are involved in web optimization.
... objective: to gain basic familiarity of what is involved with web
performance.
...And 17 more matches
Using Performance Timeline - Web APIs
the
performance timeline standard defines extensions to the
performance interface to support client-side latency measurements within applications.
... the standard also includes interfaces that allow an application to be notified when specific
performance events occur.
... together, these interfaces can be used to help identify an application's
performance bottlenecks.
...And 15 more matches
PerformanceEntry - Web APIs
the
performanceentry object encapsulates a single
performance metric that is part of the
performance timeline.
... a
performance entry can be directly created by making a
performance mark or measure (for example by calling the mark() method) at an explicit point in an application.
...
performance entries are also created in indirect ways such as loading a resource (such as an image).
...And 14 more matches
Performance
the articles linked to from here will help you improve
performance, whether you're developing core mozilla code or an add-on.
... documentation reporting a
performance problem a user friendly guide to reporting a
performance problem.
... benchmarking tips on generating valid
performance metrics.
...And 11 more matches
JavaScript performance - Learn web development
previous overview:
performance next while images and video account for over 70% of the bytes downloaded for the average website, byte per byte, javascript has a greater negative impact on
performance.
... this article looks to introduce
performance issues caused by scripts and introduces tips and tricks for optimizing javascript for web
performance.
... objective: to learn about the effects of javascript on
performance optimization, and how a javascript file size is not the only impact on web
performance.
...And 10 more matches
Populating the page: how browsers work - Web Performance
to understand how to improve
performance and perceived
performance, it helps to understand how the browser works.
... two major issues in web
performance are understanding issues having to do with latency and issues having to do with the fact that for the most part, browsers are single threaded.
...web
performance is what we have to do to make the page load happen as quickly as possible.
...And 10 more matches
performance.measure() - Web APIs
the measure() method creates a named timestamp in the browser's
performance entry buffer between marks, the navigation start time, or the current time.
... the measure can be retrieved by one of the
performance interfaces: (getentries(), getentriesbyname() or getentriesbytype()).
... the measure's
performance entry will have the following property values: entrytype - set to "measure".
...And 9 more matches
PerformanceEntry.duration - Web APIs
the duration property returns a timestamp that is the duration of the
performance entry.
... the value returned by this property depends on the
performance entry's type: "frame" - returns a timestamp indicating the difference between the starttimes of two successive frames.
... "navigation" - returns the timestamp that is the difference between the
performancenavigationtiming.loadeventend and
performanceentry.starttime properties, respectively.
...And 8 more matches
PerformanceEntry.name - Web APIs
the name property of the
performanceentry interface returns a value that further specifies the value returned by the
performanceentry.entrytype property.
... syntax var name = entry.name; return value the return value depends on the subtype of the
performanceentry object and the value of
performanceentry.entrytype, as shown by the table below.
... value subtype entrytype values description url
performanceframetiming,
performancenavigationtiming frame, navigation the document's address.
...And 8 more matches
PerformanceEntry.startTime - Web APIs
the starttime property returns the first recorded timestamp of the
performance entry.
... the value returned by this property depends on the
performance entry's type: "frame" - returns the timestamp when the frame was started.
... "mark" - returns the timestamp when the mark was created by a call to
performance.mark().
...And 8 more matches
Using the Performance API - Web APIs
a fundamental requirement of web
performance is a precise and consistent definition of time.
... the domhighrestimestamp type (a double) is used by all
performance interfaces to hold such time values.
... web
performance interfaces are defined in a suite of standards.
...And 8 more matches
Perceived performance - MDN Web Docs Glossary: Definitions of Web-related terms
perceived
performance is a subjective measure of how fast a website seems to a user based on load time and site responsiveness.
... in terms of web
performance, perceived
performance is how fast a user interaction feels rather than how fast an interaction actually is, be that a button press or a page load.
... perceived
performance is not how fast your site is; it's how fast your users think it is.
...And 7 more matches
Performance best practices for Firefox front-end engineers
unless you need precisely accurate information, they can be valuable tools in your
performance toolbox.
...that means that finding and removing (when possible) over-painting is a good place to start reducing your burden on the main thread, which will in turn improve
performance.
... the gecko profiler add-on is your friend the gecko profiler is your best friend when diagnosing
performance problems and looking for bottlenecks.
...And 7 more matches
performance.mark() - Web APIs
the mark() method creates a timestamp in the browser's
performance entry buffer with the given name.
... the application defined timestamp can be retrieved by one of the
performance interface's getentries*() methods (getentries(), getentriesbyname() or getentriesbytype()).
... the mark()'s stores its data internally as
performanceentry.
...And 7 more matches
performance.now() - Web APIs
the
performance.now() method returns a domhighrestimestamp, measured in milliseconds.
... bear in mind the following points: in dedicated workers created from a window context, the value in the worker will be lower than
performance.now() in the window who spawned that worker.
... syntax t =
performance.now(); example const t0 =
performance.now(); dosomething(); const t1 =
performance.now(); console.log(`call to dosomething took ${t1 - t0} milliseconds.`); unlike other timing data available to javascript (for example date.now), the timestamps returned by
performance.now() are not limited to one-millisecond resolution.
...And 7 more matches
PerformanceEntry.entryType - Web APIs
the entrytype property returns a domstring representing the type of
performance metric such as, for example, "mark".
... syntax var type = entry.entrytype; return value the return value depends on the subtype of the
performanceentry object and affects the value of the
performanceentry.name property as shown by the table below.
...
performance entry type names value subtype type of name property description of name property frame, navigation
performanceframetiming,
performancenavigationtiming url the document's address.
...And 7 more matches
Running Tamarin performance tests - Archive of obsolete content
the tamarin
performance tests can be used to measure
performance changes made to tamarin.
... to run
performance tests on the android shell see 'testing the android shell' below.
... running the
performance tests requires the following steps: set the avm environment variable to the path of the avmshell executable.
...And 6 more matches
CSS performance optimization - Learn web development
previous overview:
performance next painting an unstyled page, and then repainting it once styles are parsed would be bad user experience.
...to improve
performance, the node being animated can be moved off the main thread and onto the gpu.
...when an element is promoted as a layer, also known as composited, animating transform properties is done in the gpu, resulting in improved
performance, especially on mobile.
...And 6 more matches
performance.clearMarks() - Web APIs
the clearmarks() method removes the named mark from the browser's
performance entry buffer.
... if the method is called with no arguments, all
performance entries with an entry type of "mark" will be removed from the
performance entry buffer.
... syntax
performance.clearmarks();
performance.clearmarks(name); arguments name optional a domstring representing the name of the timestamp.
...And 6 more matches
performance.clearMeasures() - Web APIs
the clearmeasures() method removes the named measure from the browser's
performance entry buffer.
... if the method is called with no arguments, all
performance entries with an entry type of "measure" will be removed from the
performance entry buffer.
... syntax
performance.clearmeasures();
performance.clearmeasures(name); arguments name optional a domstring representing the name of the timestamp.
...And 6 more matches
performance.getEntriesByName() - Web APIs
the getentriesbyname() method returns a list of
performanceentry objects for the given name and type.
... the list's members (entries) can be created by making
performance marks or measures (for example by calling the mark() method) at explicit points in time.
... syntax entries = window.
performance.getentriesbyname(name, type); arguments name the name of the entry to retrieve.
...And 6 more matches
performance.getEntriesByType() - Web APIs
the getentriesbytype() method returns a list of
performanceentry objects for a given type.
... the list's members (entries) can be created by making
performance marks or measures (for example by calling the mark() method) at explicit points in time.
... syntax entries = window.
performance.getentriesbytype(type); arguments type the type of entry to retrieve such as "mark".
...And 6 more matches
PerformanceEventTiming - Web APIs
the
performanceeventtiming interface of the event timing api provides timing information for the event types listed below.
... compositionstart compositionupdate contextmenu dblclick dragend dragenter dragleave dragover dragstart drop input keydown keypress keyup mousedown mouseenter mouseleave mouseout mouseover mouseup pointerover pointerenter pointerdown pointerup pointercancel pointerout pointerleave gotpointercapture lostpointercapture touchstart touchend touchcancel properties
performanceeventtiming.processingstart returns the time at which event dispatch started.
...
performanceeventtiming.processingend returns the time at which the event dispatch ended.
...And 6 more matches
PerformanceMark - Web APIs
performancemark is an abstract interface for
performanceentry objects with an entrytype of "mark".
... entries of this type are created by calling
performance.mark() to add a named domhighrestimestamp (the mark) to the browser's
performance timeline.
... <div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/
performanceentry" target="_top"><rect x="1" y="1" width="160" height="50" fill="#fff" stroke="#d4dde4" stroke-width="2px" /><text x="81" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performanceentry</text></a><polyline points="161,25 171,20 171,30 161,25" stroke="#d4dde4" fill="none"/><line x1="171" y1="25" x2="201" y2="25" stroke="#d4dde4"/><a xlink:href="/docs/web/api/pe...
...And 6 more matches
PerformanceMeasure - Web APIs
performancemeasure is an abstract interface for
performanceentry objects with an entrytype of "measure".
... entries of this type are created by calling
performance.measure() to add a named domhighrestimestamp (the measure) between two marks to the browser's
performance timeline.
... <div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/
performanceentry" target="_top"><rect x="1" y="1" width="160" height="50" fill="#fff" stroke="#d4dde4" stroke-width="2px" /><text x="81" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performanceentry</text></a><polyline points="161,25 171,20 171,30 161,25" stroke="#d4dde4" fill="none"/><line x1="171" y1="25" x2="201" y2="25" stroke="#d4dde4"/><a xlink:href="/docs/web/api/pe...
...And 6 more matches
PerformanceNavigation - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancenavigation interface represents information about how the navigation to the current document was done.
... an object of this type can be obtained by calling the
performance.navigation read-only attribute.
...And 6 more matches
PerformancePaintTiming - Web APIs
the
performancepainttiming interface of the paint timing provides timing information about "paint" (also called "render") operations during web page construction.
... an application can register a
performanceobserver for "paint"
performance entry types and the observer can retrieve the times that paint events occur.
... <div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/
performanceentry" target="_top"><rect x="1" y="1" width="160" height="50" fill="#fff" stroke="#d4dde4" stroke-width="2px" /><text x="81" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performanceentry</text></a><polyline points="161,25 171,20 171,30 161,25" stroke="#d4dde4" fill="none"/><line x1="171" y1="25" x2=...
...And 6 more matches
Web performance resources - Learn web development
knowing this will help you understand how to improve the
performance of the site.
... css
performance factors use http/2 on your server (or cdn).
... quick wins css web
performance is all about user experience and perceived
performance.
...And 5 more matches
Reporting a Performance Problem
this article will guide you in reporting a
performance problem using the built-in gecko profiler tool.
...when it runs out of space in its buffer, it discards old entries so you may want to increase the buffer size if you find you are unable to capture the profile quickly enough after you notice a
performance problem.
... using the keyboard shortcuts is often more convenient than using the mouse to interact with the ui: ctrl+shift+1 - start/stop the profiler ctrl+shift+2 - take a profile and launch the viewer to view it capturing and sharing a profile while the profiler is recording, reproduce the
performance problem.
...And 5 more matches
performance.getEntries() - Web APIs
the getentries() method returns a list of all
performanceentry objects for the page.
... the list's members (entries) can be created by making
performance marks or measures (for example by calling the mark() method) at explicit points in time.
... if you are only interested in
performance entries of certain types or that have certain names, see getentriesbytype() and getentriesbyname().
...And 5 more matches
PerformanceFrameTiming - Web APIs
performanceframetiming is an abstract interface that provides frame timing data about the browser's event loop.
... an application can register a
performanceobserver for "frame"
performance entry types and the observer can retrieve data about the duration of each frame event.
... <div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/
performanceframetiming" target="_top"><rect x="1" y="1" width="220" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="111" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performanceframetiming</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties thi...
...And 5 more matches
PerformanceObserver.observe() - Web APIs
the observe() method of the
performanceobserver interface is used to specify the set of
performance entry types to observe.
... the
performance entry types are specified as an array of domstring objects, each naming one entry type; the type names are documented in
performance entry type names in
performanceentry.entrytype.
... when a matching
performance entry is recorded, the
performance observer's callback function—set when creating the
performanceobserver—is invoked.
...And 5 more matches
HTML performance features - Learn web development
previous overview:
performance next html is by default fast and accessible.
...this module intends to walk you through the key html
performance features that can drastically improve the quality of your webpage.
... objective: to learn about the impact of html elements and attributes on web
performance optimization.
...And 4 more matches
Performance - Firefox Developer Tools
the
performance tool gives you insight into your site's general responsiveness, javascript and layout
performance.
... with the
performance tool you create a recording, or profile, of your site over a period of time.
...this view only appears if you checked "record allocations" in the
performance tool settings.
...And 4 more matches
PerformanceObserver() - Web APIs
the
performanceobserver() constructor creates a new
performanceobserver object with the given observer callback.
... the observer callback is invoked when
performance entry events are recorded for the entry types that have been registered, via the observe() method.
... syntax var observer = new
performanceobserver(callback); parameters callback a
performanceobservercallback callback that will be invoked when observed
performance events are recorded.
...And 4 more matches
PerformanceObserver - Web APIs
the
performanceobserver interface is used to observe
performance measurement events and be notified of new
performance entries as they are recorded in the browser's
performance timeline.
... constructor
performanceobserver() creates and returns a new
performanceobserver object.
... methods
performanceobserver.observe() specifies the set of entry types to observe.
...And 4 more matches
PerformanceObserverEntryList.getEntries() - Web APIs
the getentries() method of the
performanceobserverentrylist interface returns a list of explicitly observed
performance entry objects for a given filter.
... syntax general syntax: entries = list.getentries(); entries = list.getentries(
performanceentryfilteroptions); specific usage: entries = list.getentries({name: "entry_name", entrytype: "mark"}); parameters
performanceentryfilteroptionsoptional is a
performanceentryfilteroptions dictionary, having the following fields: "name", the name of a
performance entry.
...the valid entry types are listed in the
performanceentry.entrytype method.
...And 4 more matches
PerformanceServerTiming - Web APIs
the
performanceservertiming interface surfaces server metrics that are sent with the response in the server-timing http header.
... properties
performanceservertiming.descriptionread only a domstring value of the server-specified metric description, or an empty string.
...
performanceservertiming.durationread only a double that contains the server-specified metric duration, or value 0.0.
...And 4 more matches
Critical rendering path - Web Performance
optimizing the critical render path improves render
performance.the critical rendering path includes the document object model (dom), css object model (cssom), render tree and layout.
... understanding crp web
performance includes the server requests and responses, loading, scripting, rendering, layout, and the painting of the pixels to the screen.
... in terms of selector
performance, less specific selectors are faster than more specific ones.
...And 4 more matches
Performance best practices in extensions - Archive of obsolete content
there is a down side to this: poorly written extensions can have a severe impact on the browsing experience, including on the overall
performance of firefox itself.
... this article offers some best practices and suggestions that can not only improve the
performance and speed of your extension, but also of firefox itself.
... improving startup
performance extensions are loaded and run whenever a new browser window opens.
...And 3 more matches
performance.clearResourceTimings() - Web APIs
the clearresourcetimings() method removes all
performance entries with an entrytype of "resource" from the browser's
performance data buffer and sets the size of the
performance data buffer to zero.
... to set the size of the browser's
performance data buffer, use the
performance.setresourcetimingbuffersize() method.
... syntax
performance.clearresourcetimings(); arguments void return value none this method has no return value.
...And 3 more matches
performance.setResourceTimingBufferSize() - Web APIs
the setresourcetimingbuffersize() method sets the browser's resource timing buffer size to the specified number of "resource"
performance entry type objects.
... a browser's recommended resource timing buffer size is at least 150
performance entry objects.
... syntax
performance.setresourcetimingbuffersize(maxsize); arguments maxsize a number representing the maximum number of
performance entry objects the browser should hold in its
performance entry buffer.
...And 3 more matches
WorkerGlobalScope.performance - Web APIs
the
performance read-only property of the workerglobalscope interface returns a
performance object to be used on the worker.
... not all
performance properties and methods are available to web workers.
... syntax var perfobj = self.
performance; return value a
performance object.
...And 3 more matches
PerformanceEntry.toJSON() - Web APIs
the tojson() method is a serializer; it returns a json representation of the
performance entry object.
... syntax json = perfentry.tojson(); arguments none return value json a json object that is the serialization of the
performanceentry object.
... function run_
performanceentry() { log("
performanceentry support ..."); if (
performance.mark === undefined) { log("...
...And 2 more matches
PerformanceLongTaskTiming - Web APIs
the
performancelongtasktiming interface of the the long tasks api reports instances of long tasks.
... <div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/
performanceentry" target="_top"><rect x="1" y="1" width="160" height="50" fill="#fff" stroke="#d4dde4" stroke-width="2px" /><text x="81" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performanceentry</text></a><polyline points="161,25 171,20 171,30 161,25" stroke="#d4dde4" fill="none"/><line x1="171" y1="25" x2="201" y2="25" stroke="#d4dde4"/><a xlink:href="/docs/web/api/pe...
...rformancelongtasktiming" target="_top"><rect x="201" y="1" width="250" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="326" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performancelongtasktiming</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties
performancelongtasktiming.attribution read only returns a sequence of taskattributiontiming instances.
...And 2 more matches
PerformanceObserverEntryList.getEntriesByName() - Web APIs
the getentriesbyname() method of the
performanceobserverentrylist interface returns a list of explicitly observed
performance entry objects for a given name and entry type.
...the valid entry types are listed in
performanceentry.entrytype.
... return value a list of explicitly observed
performance entry objects that have the specified name and type.
...And 2 more matches
PerformanceObserverEntryList.getEntriesByType() - Web APIs
the getentriesbytype() method of the
performanceobserverentrylist returns a list of explicitly observed
performance entry objects for a given
performance entry type.
...the valid entry types are listed in
performanceentry.entrytype.
... return value a list of explicitly observed
performanceentry objects that have the specified type.
...And 2 more matches
PerformanceObserverEntryList - Web APIs
the
performanceobserverentrylist interface is a list of peformance events that were explicitly observed via the observe() method.
... methods
performanceobserverentrylist.getentries() returns a list of explicitly observed
performanceentry objects based on the given filter.
...
performanceobserverentrylist.getentriesbytype() returns a list of explicitly observed
performanceentry objects of the given entry type.
...And 2 more matches
Understanding latency - Web Performance
in terms of
performance optimization, it's important to optimize to reduce causes of lacency and to test site
performance emulating high latency to optimizer for users with lousy connections.
... this article explains what latency is, how it impacts
performance, how to measure latency, and how to reduce it.
...one of the main aims of improving
performance is to reduce latency.
...And 2 more matches
Performance
it has generally good
performance for a small embedded database.
...therefore, if you are doing many transactions in a row, you will get significant
performance improvements by surrounding them in a transaction.
...queries careful reordering of the sql statement, or creating the proper indices, can often improve
performance.
...zero-filling can have significant
performance overhead in some situations.
PerformanceObserver.takeRecords() - Web APIs
the takerecords() method of the
performanceobserver interface returns the current list of
performance entries stored in the
performance observer, emptying it out.
... syntax var
performanceentry[] =
performanceobserver.takerecords(); parameters none.
... return value a list of
performanceentry objects.
... example var observer = new
performanceobserver(function(list, obj) { var entries = list.getentries(); for (var i=0; i < entries.length; i++) { // process "mark" and "frame" events } }); observer.observe({entrytypes: ["mark", "frame"]}); var records = observer.takerecords(); console.log(records[0].name); console.log(records[0].starttime); console.log(records[0].duration); specifications specification status comment
performance timeline level 2the definition of 'takerecords()' in that specification.
PerformanceResourceTiming.initiatorType - Web APIs
the initiatortype read-only property is a string that represents the type of resource that initiated the
performance event.
... if the initiator is a
performancenavigationtiming object, the property returns an empty string ("").
... syntax resource.initiatortype; return value a string representing the type of resource that initiated the
performance event, as specified above.
... example function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_initiatortype(p[i]); } } function print_initiatortype(perfentry) { // print this
performance entry object's initiatortype value var value = "initiatortype" in perfentry; if (value) console.log("...
PerformanceTiming.connectEnd - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.connectend read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, where the connection is opened network.
...if a persistent connection is used, the value will be the same as
performancetiming.fetchstart.
... syntax time =
performancetiming.connectend; specifications specification status comment navigation timingthe definition of '
performancetiming.connectend' in that specification.
PerformanceTiming.connectStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.connectstart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, where the request to open a connection is sent to the network.
...if a persistent connection is used, the value will be the same as
performancetiming.fetchstart.
... syntax time =
performancetiming.connectstart; specifications specification status comment navigation timingthe definition of '
performancetiming.connectstart' in that specification.
PerformanceTiming.domainLookupEnd - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.domainlookupend read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, where the domain lookup is finished.
... if a persistent connection is used, or the information is stored in a cache or a local resource, the value will be the same as
performancetiming.fetchstart.
... syntax time =
performancetiming.domainlookupend; specifications specification status comment navigation timingthe definition of '
performancetiming.domainlookupend' in that specification.
PerformanceTiming.domainLookupStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.domainlookupstart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, where the domain lookup starts.
... if a persistent connection is used, or the information is stored in a cache or a local resource, the value will be the same as
performancetiming.fetchstart.
... syntax time =
performancetiming.domainlookupstart; specifications specification status comment navigation timingthe definition of '
performancetiming.domainlookupstart' in that specification.
PerformanceTiming.navigationStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.navigationstart read-only property returns an unsigned long long representing the moment, in milliseconds since the unix epoch, right after the prompt for unload terminates on the previous document in the same browsing context.
... if there is no previous document, this value will be the same as
performancetiming.fetchstart.
... syntax time =
performancetiming.navigationstart; specifications specification status comment navigation timingthe definition of '
performancetiming.navigationstart' in that specification.
Window.performance - Web APIs
the window interface's
performance property returns a
performance object, which can be used to gather
performance information about the current document.
... it serves as the point of exposure for the
performance timeline api, the high resolution time api, the navigation timing api, the user timing api, and the resource timing api.
... syntax
performancedata = window.
performance; value a
performance object offering access to the
performance and timing-related information offered by the apis it exposes.
... specifications specification status comment high resolution timethe definition of 'window.
performance' in that specification.
Appendix A: Add-on Performance - Archive of obsolete content
note: see the newer article
performance best practices in extensions for more up-to-date information about how to optimize the
performance of your add-on.
... add-ons can have a noticeable
performance impact on firefox.
...add-on developers need to make sure that they minimize their add-ons'
performance impact, and here are a few simple guidelines that should be followed to achieve that.
Automated performance testing and sheriffing
we have several test harnesses that test firefox for various
performance characteristics (page load time, startup time, etc.).
...currently we aggregate this information in the perfherder web application where
performance sheriffs watch for significant regressions, filing bugs as appropriate.
... current list of automated systems we are tracking (at least to some degree): talos: the main
performance system, run on virtually every check-in to an integration branch build metrics: a grab bag of
performance metrics generated by the build system arewefastyet: a generic javascript and web benchmarking system areweslimyet: a memory benchmarking tool ...
Performance.onresourcetimingbufferfull - Web APIs
this event is fired when the browser's resource timing
performance buffer is full.
... syntax callback =
performance.onresourcetimingbufferfull = buffer_full_cb; return value callback an eventhandler that is invoked when the resourcetimingbufferfull event is fired.
... function buffer_full(event) { console.log("warning: resource timing buffer is full!");
performance.setresourcetimingbuffersize(200); } function init() { // set a callback if the resource buffer becomes filled
performance.onresourcetimingbufferfull = buffer_full; } <body onload="init()"> specifications specification status comment resource timing level 1the definition of 'onresourcetimingbufferfull' in that specification.
Performance.timing - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performance.timing read-only property returns a
performancetiming object containing latency-related
performance information.
... syntax timinginfo =
performance.timing; specifications specification status comment navigation timing level 2 working draft initial definition.
performance.toJSON() - Web APIs
the tojson() method of the
performance interface is a standard serializer: it returns a json representation of the
performance object's properties.
... syntax myperf =
performance.tojson() arguments none return value myperf a json object that is the serialization of the
performance object.
... example var js; js = window.
performance.tojson(); console.log("json = " + json.stringify(js)); specifications specification status comment high resolution time level 2the definition of 'tojson() serializer' in that specification.
PerformanceNavigation.redirectCount - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancenavigation.redirectcount read-only property returns an unsigned short representing the number of redirects done before reaching the page.
... syntax amount =
performancenavigation.redirectcount; specifications specification status comment navigation timingthe definition of '
performancenavigation.redirectcount' in that specification.
PerformanceNavigation.type - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancenavigation.type read-only property returns an unsigned short containing a constant describing how the navigation to this page was done.
... syntax type =
performancenavigation.type; specifications specification status comment navigation timingthe definition of '
performancenavigation.type' in that specification.
PerformanceNavigationTiming.toJSON() - Web APIs
the tojson() method is a serializer - it returns a json representation of the
performancenavigationtiming object.
... syntax json = resourceperfentry.tojson(); arguments none return value json a json object that is the serialization of the
performancenavigationtiming object as a map with entries from the closest inherited interface and with entries for each of the serializable attributes.
... example // get a resource
performance entry var perfentries =
performance.getentriesbytype("navigation"); var entry = perfentries[0]; // get the json and log it var json = entry.tojson(); var s = json.stringify(json); console.log("
performancenavigationtiming.tojson() = " + s); specifications specification status comment navigation timing level 2the definition of 'tojson()' in that specification.
PerformanceResourceTiming.toJSON() - Web APIs
the tojson() method is a serializer that returns a json representation of the
performanceresourcetiming object.
... syntax json = resourceperfentry.tojson(); arguments none return value json a json object that is the serialization of the
performanceresourcetiming object as a map with entries from the closest inherited interface and with entries for each of the serializable attributes.
... example // get a resource
performance entry var perfentries =
performance.getentriesbytype("resource"); var entry = perfentries[0]; // get the json and log it var json = entry.tojson(); var s = json.stringify(json); console.log("
performanceentry.tojson = " + s); specifications specification status comment resource timing level 2the definition of 'tojson' in that specification.
PerformanceTiming.domComplete - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.domcomplete read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, when the parser finished its work on the main document, that is when its document.readystate changes to 'complete' and the corresponding readystatechange event is thrown.
... syntax time =
performancetiming.domcomplete; specifications specification status comment navigation timingthe definition of '
performancetiming.domcomplete' in that specification.
PerformanceTiming.domContentLoadedEventEnd - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.domcontentloadedeventend read-only property returns an unsigned long long representing the moment, in milliseconds since the unix epoch, right after all the scripts that need to be executed as soon as possible, in order or not, has been executed.
... syntax time =
performancetiming.domcontentloadedeventend; specifications specification status comment navigation timingthe definition of '
performancetiming.domcontentloadedeventend' in that specification.
PerformanceTiming.domContentLoadedEventStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.domcontentloadedeventstart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, right before the parser sent the domcontentloaded event, that is right after all the scripts that need to be executed right after parsing has been executed.
... syntax time =
performancetiming.domcontentloadedeventstart; specifications specification status comment navigation timingthe definition of '
performancetiming.domcontentloadedeventstart' in that specification.
PerformanceTiming.domInteractive - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.dominteractive read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, when the parser finished its work on the main document, that is when its document.readystate changes to 'interactive' and the corresponding readystatechange event is thrown.
... syntax time =
performancetiming.dominteractive; specifications specification status comment navigation timingthe definition of '
performancetiming.dominteractive' in that specification.
PerformanceTiming.domLoading - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.domloading read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, when the parser started its work, that is when its document.readystate changes to 'loading' and the corresponding readystatechange event is thrown.
... syntax time =
performancetiming.domloading; specifications specification status comment navigation timingthe definition of '
performancetiming.domloading' in that specification.
PerformanceTiming.fetchStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.fetchstart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, the browser is ready to fetch the document using an http request.
... syntax time =
performance.timing.fetchstart; specifications specification status comment navigation timingthe definition of '
performancetiming.fetchstart' in that specification.
PerformanceTiming.loadEventEnd - Web APIs
please use the
performancenavigationtiming interface's
performancenavigationtiming.loadeventend read-only property instead.
... the legacy
performancetiming.loadeventend read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, when the load event handler terminated, that is when the load event is completed.
... syntax time =
performancetiming.loadeventend; specifications specification status comment navigation timingthe definition of '
performancetiming.loadeventend' in that specification.
PerformanceTiming.loadEventStart - Web APIs
please use the
performancenavigationtiming interface's
performancenavigationtiming.loadeventstart read-only property instead..
... the legacy
performancetiming.loadeventstart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, when the load event was sent for the current document.
... syntax time =
performancetiming.loadeventstart; specifications specification status comment navigation timingthe definition of '
performancetiming.loadeventstart' in that specification.
PerformanceTiming.redirectEnd - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.redirectend read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, the last http redirect is completed, that is when the last byte of the http response has been received.
... syntax time =
performancetiming.redirectend; specifications specification status comment navigation timingthe definition of '
performancetiming.redirectend' in that specification.
PerformanceTiming.redirectStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.redirectstart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, the first http redirect starts.
... syntax time =
performancetiming.redirectstart; specifications specification status comment navigation timingthe definition of '
performancetiming.redirectstart' in that specification.
PerformanceTiming.requestStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.requeststart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, when the browser sent the request to obtain the actual document, from the server or from a cache.
... syntax time =
performancetiming.requeststart; specifications specification status comment navigation timingthe definition of '
performancetiming.requeststart' in that specification.
PerformanceTiming.responseEnd - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.responseend read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, when the browser received the last byte of the response, or when the connection is closed if this happened first, from the server from a cache or from a local resource.
... syntax time =
performancetiming.responseend; specifications specification status comment navigation timingthe definition of '
performancetiming.responseend' in that specification.
PerformanceTiming.responseStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.responsestart read-only property returns an unsigned long long representing the moment in time (in milliseconds since the unix epoch) when the browser received the first byte of the response from the server, cache, or local resource.
... syntax time =
performancetiming.responsestart; specifications specification status comment navigation timingthe definition of '
performancetiming.responsestart' in that specification.
PerformanceTiming.secureConnectionStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.secureconnectionstart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, where the secure connection handshake starts.
... syntax time =
performancetiming.secureconnectionstart; specifications specification status comment navigation timingthe definition of '
performancetiming.secureconnectionstart' in that specification.
PerformanceTiming.unloadEventEnd - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.unloadeventend read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, the unload event handler finishes.
... syntax time =
performancetiming.unloadeventend; specifications specification status comment navigation timingthe definition of '
performancetiming.unloadeventend' in that specification.
PerformanceTiming.unloadEventStart - Web APIs
please use the
performancenavigationtiming interface instead.
... the legacy
performancetiming.unloadeventstart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, the unload event has been thrown.
... syntax time =
performancetiming.unloadeventstart; specifications specification status comment navigation timingthe definition of '
performancetiming.unloadeventstart' in that specification.
Optimization and performance - Developer guides
there are several tools available to check the
performance of a website or blog.
... google pagespeed insights lighthouse webpagetest browser developer tools the above resources also include web
performance best practices.
... making web
performance a priority by considering web
performance throughout the development process is important in ensuring users get the best user experience possible.
Web performance - MDN Web Docs Glossary: Definitions of Web-related terms
web
performance is the objective time from when a request for content is made until the requested content is displayed in the user's browser, objective render times, and the subjective user experience of load time and runtime.
... learn more learn about web
performance perceived
performance ...
Performance
this highlights some
performance pitfalls related to frame scripts/message manager usage and alternative approaches to avoid them.
...
performance best practices declaring stateless functions once per process bad: // addon.js services.mm.loadframescript("framescript.js", true) // framescript.js const precomputedconstants = // ...
GPU performance
doing
performance work with gpus is harder than with cpus because of the asynchronous and massively parallel architecture.
...intel graphics
performance analyzers - haven't tried.
Performance Analysis - Firefox Developer Tools
the network monitor includes a
performance analysis tool, to help show you how long the browser takes to download the different parts of your site.
... using the
performance analysis tool to run the
performance analysis tool click the stopwatch icon in the toolbar.
Performance.navigation - Web APIs
the legacy
performance.navigation read-only property returns a
performancenavigation object representing the type of navigation that occurs in the given browsing context, such as the number of redirections needed to fetch the resource.
... syntax navobject =
performance.navigation; specifications specification status comment navigation timingthe definition of '
performance.navigation' in that specification.
Performance.timeOrigin - Web APIs
the timeorigin read-only property of the
performance interface returns the high resolution timestamp of the start time of the
performance measurement.
... syntax var timeorigin =
performance.timeorigin value a high resolution timestamp.
PerformanceLongTaskTiming.attribution - Web APIs
the attribution readonly property of the
performancelongtasktiming interface returns a sequence of taskattributiontiming instances.
... syntax var taskattributetiming =
performancelongtasktiming.attribution; value a sequence of taskattributiontiming instances.
PerformanceResourceTiming.encodedBodySize - Web APIs
function log_sizes(perfentry){ // check for support of the
performanceentry.*size properties and print their values // if supported.
...ize); else console.log("decodedbodysize = not supported"); if ("encodedbodysize" in perfentry) console.log("encodedbodysize = " + perfentry.encodedbodysize); else console.log("encodedbodysize = not supported"); if ("transfersize" in perfentry) console.log("transfersize = " + perfentry.transfersize); else console.log("transfersize = not supported"); } function check_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { log_sizes(p[i]); } } specifications specification status comment resource timing level 2the definition of 'encodedbodysize' in that specification.
PerformanceResourceTiming.transferSize - Web APIs
function log_sizes(perfentry){ // check for support of the
performanceentry.*size properties and print their values // if supported.
...ize); else console.log("decodedbodysize = not supported"); if ("encodedbodysize" in perfentry) console.log("encodedbodysize = " + perfentry.encodedbodysize); else console.log("encodedbodysize = not supported"); if ("transfersize" in perfentry) console.log("transfersize = " + perfentry.transfersize); else console.log("transfersize = not supported"); } function check_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { log_sizes(p[i]); } } specifications specification status comment resource timing level 2the definition of 'transfersize' in that specification.
PerformanceResourceTiming.workerStart - Web APIs
the workerstart read-only property of the
performanceresourcetiming interface returns a domhighrestimestamp immediately before dispatching the fetchevent if a service worker thread is already running, or immediately before starting the service worker thread if it is not already running.
... function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fet...
PerformanceServerTiming.toJSON - Web APIs
the tojson() method of the
performanceservertiming interface returns a domstring that is the json representation of the
performanceservertiming object.
... syntax var json =
performanceservertiming.tojson() parameters none.
WebXR performance guide - Web APIs
webxr applications involve multiple technologies which can be highly sensitive to
performance constraints.
... as such, you may find yourself needing to make adjustments or compromises to optimize the
performance of your webxr application to be as usable as possible on the broadest assortment of target devices.
Performance.memory - Web APIs
syntax timinginfo =
performance.memory attributes jsheapsizelimit the maximum size of the heap, in bytes, that is available to the context.
Performance: resourcetimingbufferfull event - Web APIs
function buffer_full(event) { console.log("warning: resource timing buffer is full!");
performance.setresourcetimingbuffersize(200); } function init() { // set a callback if the resource buffer becomes filled
performance.onresourcetimingbufferfull = buffer_full; } <body onload="init()"> note that you could also set up the handler using the addeventlistener() function:
performance.addeventlistener('resourcetimingbufferfull', buffer_full); specifications specification status...
PerformanceNavigationTiming.domComplete - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.interactive); // ...
PerformanceNavigationTiming.domContentLoadedEventEnd - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.dominteractive); ...
PerformanceNavigationTiming.domContentLoadedEventStart - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.interactive); // ...
PerformanceNavigationTiming.domInteractive - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.dominteractive); ...
PerformanceNavigationTiming.loadEventEnd - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.dominteractive); ...
PerformanceNavigationTiming.loadEventStart - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.interactive); // ...
PerformanceNavigationTiming.redirectCount - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.interactive); // ...
PerformanceNavigationTiming.type - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.interactive); // ...
PerformanceNavigationTiming.unloadEventEnd - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.interactive); // ...
PerformanceNavigationTiming.unloadEventStart - Web APIs
function print_nav_timing_data() { // use getentriesbytype() to just get the "navigation" events var perfentries =
performance.getentriesbytype("navigation"); for (var i=0; i < perfentries.length; i++) { console.log("= navigation entry[" + i + "]"); var p = perfentries[i]; // dom properties console.log("dom content loaded = " + (p.domcontentloadedeventend - p.domcontentloadedeventstart)); console.log("dom complete = " + p.domcomplete); console.log("dom interactive = " + p.interactive); // ...
PerformanceResourceTiming.connectEnd - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the *start and *end properties properties = ["connectstart", "connectend", "domainlookupstart...
PerformanceResourceTiming.connectStart - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "...
PerformanceResourceTiming.decodedBodySize - Web APIs
ize); else console.log("decodedbodysize = not supported"); if ("encodedbodysize" in perfentry) console.log("encodedbodysize = " + perfentry.encodedbodysize); else console.log("encodedbodysize = not supported"); if ("transfersize" in perfentry) console.log("transfersize = " + perfentry.transfersize); else console.log("transfersize = not supported"); } function check_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { log_sizes(p[i]); } } specifications specification status comment resource timing level 2the definition of 'decodedbodysize' in that specification.
PerformanceResourceTiming.domainLookupEnd - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the *start and *end properties properties = ["connectstart", "connectend", "domainlookupstart...
PerformanceResourceTiming.domainLookupStart - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "...
PerformanceResourceTiming.fetchStart - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "...
PerformanceResourceTiming.nextHopProtocol - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_nexthopprotocol(p[i]); } } function print_nexthopprotocol(perfentry) { var value = "nexthopprotocol" in perfentry; if (value) console.log("nexthopprotocol = " + perfentry.nexthopprotocol); else console.log("next...
PerformanceResourceTiming.redirectEnd - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "...
PerformanceResourceTiming.redirectStart - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "...
PerformanceResourceTiming.requestStart - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "...
PerformanceResourceTiming.responseEnd - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "...
PerformanceResourceTiming.responseStart - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "...
PerformanceResourceTiming.secureConnectionStart - Web APIs
function print_
performanceentries() { // use getentriesbytype() to just get the "resource" events var p =
performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { print_start_and_end_properties(p[i]); } } function print_start_and_end_properties(perfentry) { // print timestamps of the
performanceentry *start and *end properties properties = ["connectstart", "connectend", "...
Index - Web APIs
273 beacon api guide, overview, web
performance, user behavior tracker, user tracker the beacon interface is used to schedule an asynchronous and non-blocking request to a web server.
... 274 using the beacon api guide, web
performance the beacon interface schedules an asynchronous and non-blocking request to a web server.
...this not only simplifies css manipulation, but also lessens the negative impact on
performance as compared to htmlelement.style.
...And 170 more matches
Index - MDN Web Docs Glossary: Definitions of Web-related terms
41 brotli brotli, glossary, reference, web
performance, compression brotli is a general-purpose lossless compression algorithm.
... 56 css object model (cssom) css, cssom, dom, glossary, web
performance the css object model (cssom) is a map of all css selectors and relevant properties for each selector in the form of a tree, with a root node, sibling, descendant, child, and other relationship.
... 79 client hints client hints, glossary,
performance, reference, web
performance client hints are a set of http request header fields for proactive content negotiation allowing clients to indicate a list of device and agent specific preferences.
...And 56 more matches
Using the User Timing API - Web APIs
the user timing interface allows the developer to create application specific timestamps that are part of the browser's
performance timeline.
... this document shows how to create mark and measure
performance entry types and how to use user timing methods (which are extensions of the
performance interface) to retrieve and remove entries from the browser's
performance timeline.
...
performance marks a
performance mark is a named
performance entry that is created by the application at some location in an application.
...And 28 more matches
Using the Frame Timing API - Web APIs
the
performanceframetiming interface provides frame timing data about the browser's event loop.
... an application can register a
performanceobserver for "frame"
performance entry types and the observer will have data about the duration of each frame event.
... this document describes how to use the
performanceframetiming interfaces including example code.
...And 24 more matches
User Timing API - Web APIs
the user timing interface allows the developer to create application specific timestamps that are part of the browser's
performance timeline.
... this document provides an overview of the mark and measure
performance event types including the four user timing methods that extend the
performance interface.
... for more details and example code regarding these two
performance event types and the methods, see using the user timing api.
...And 20 more matches
Index - Learn web development
dictionaries and glossaries formally associate keywords with one or more descriptions, as in this case: 255 tips for authoring fast-loading html pages advanced, guide, html, needsupdate,
performance, web, web
performance these tips are based on common knowledge and experimentation.
... 337 web
performance css, html, http, javascript, learn,
performance, web
performance building websites requires html, css, and javascript.
...this is known as web
performance, and in this module you'll focus on the fundamentals of how to create performant websites.
...And 17 more matches
Using the Resource Timing API - Web APIs
resource timing properties an application developer can use the property values to calculate the length of time a phase takes and that information can help diagnose
performance issues.
...this timing data provides a detailed profile of the resource loading phases and this data can be used to help identify
performance bottlenecks.
... function calculate_load_times() { // check
performance support if (
performance === undefined) { console.log("= calculate load times:
performance not supported"); return; } // get a list of "resource"
performance entries var resources =
performance.getentriesbytype("resource"); if (resources === undefined || resources.length <= 0) { console.log("= calculate load times: there are no `resource`
performance records"); return; } console.log("= calculate load times"); for (var i=0; i < resources.length; i++) { console.log("== resource[" + i + "] - " + resources[i].name); // redirect time var t = resources[i].redirectend - resources[i].redirectstart; console.log("...
...And 16 more matches
Index - Archive of obsolete content
272 appendix a: add-on
performance add-ons, extensions,
performance no summary!
... 294
performance best practices in extensions add-ons, best practices, extensions, guide, needscontent, needsexample,
performance no summary!
...the tool enables mozilla.org to be immediately notified of changes to the code that prevent mozilla from compiling and running (or compromise
performance and footprint) so they can get someone to fix the problem or reverse the changes.
...And 14 more matches
Frame Timing API - Web APIs
the
performanceframetiming interface provides frame timing data about the browser's event loop.
... an application can register a
performanceobserver for "frame"
performance entry types.
... the observer (callback) will be notified when new "frame" events are added to the browser's
performance timeline and the frame's duration (length of time) will be available.
...And 12 more matches
Index - Firefox Developer Tools
52
performance analysis 110n:priority, debugging, dev tools, firefox, guide, networking, tools the network monitor includes a
performance analysis tool, to help show you how long the browser takes to download the different parts of your site.
... 81 paint flashing tool web
performance the paint flashing tool, when activated, highlights the part of a page that the browser needs to repaint in response to some input: for example, the user moving the mouse or scrolling.
...because repaints can be
performance-intensive operations, eliminating unnecessary repaints can improve your website's responsiveness.
...And 9 more matches
Profiling with the Firefox Profiler
it has tighter integration with firefox than external profilers, and has more of a platform focus than the devtools
performance panel.
...it is available from the menu at tools > web developer >
performance.
... reporting a
performance problem has a step-by-step guide for obtaining a profile when requested by firefox developers.
...And 8 more matches
Connection management in HTTP/1.x - HTTP
connection management is a key topic in http: opening and maintaining connections largely impacts the
performance of web sites and web applications.
... this simple model held an innate limitation on
performance: opening each tcp connection is a resource-consuming operation.
...network latency and bandwidth affect
performance when a request needs sending.
...And 8 more matches
Multimedia: Images - Learn web development
previous overview:
performance next media, namely images and video, account for over 70% of the bytes downloaded for the average website.
... in terms of download
performance, eliminating media, and reducing file size is the low-hanging fruit.
... this article looks at optimizing image and video to improve web
performance.
...And 7 more matches
Handling common JavaScript problems - Learn web development
performance issues as your apps get more complex and you start to use more javascript, you may start to run into
performance problems, especially when viewing apps on slower devices.
...
performance is a big topic, and we don't have time to cover it in detail here.
...in general, reducing the number of http requests is very good for
performance.
...And 7 more matches
Using Navigation Timing - Web APIs
the navigation timing api lets you easily obtain detailed and highly accurate timing information to help isolate
performance problems with your site's code or resources.
... collecting timing information using the api is as simple as obtaining the
performance object using window.
performance and looking up what you need within the object returned.
... for example, to measure the perceived loading time for a page: window.addeventlistener("load", function() { let now = new date().gettime(); let loadingtime = now -
performance.timing.navigationstart; document.queryselector(".output").innertext = loadingtime + " ms"; }, false); this code, executed when the load event occurs, subtracts from the current time the time at which the navigation whose timing was recorded began (
performance.timing.navigationstart), and outputs that information to the screen by inserting it into an element.
...And 7 more matches
Resource Timing API - Web APIs
the
performanceresourcetiming interface extends the
performanceentry for
performance entries which have an entrytype of "resource".
... the
performanceresourcetiming interface also includes several network timing properties.
... resource size the
performanceresourcetiming interface has three properties that can be used to obtain size data about a resource.
...And 7 more matches
Multimedia: video - Learn web development
previous overview:
performance next as we learned in the previous section, media, namely images and video, account for over 70% of the bytes downloaded for the average website.
...this article looks at optimizing video to improve web
performance.
... objective: to learn about the various video formats, their impact on
performance, and how to reduce video impact on overall page load time while serving the smallest video file size based on each browsers file type support.
...And 6 more matches
Gecko Profiler FAQ
this can change some
performance characteristics, but is a decent way to get a sense of which parts of a large function are expensive.
... you do want to think about various characteristics of an allocator which may have an impact on
performance.
... for example, see julian’s great investigation on the impact of cache line sharing across multiple cores on jemalloc’s multi-core
performance in https://bugzilla.mozilla.org/show_bug.cgi?id=1291355#c26.
...And 6 more matches
Index
it was originally developed for telecommunication systems at times where it was critical to minimize data as much as possible (although it still makes sense to use that principle today for good
performance).
... the last versions of these legacy databases are: o cert8.db for certificates o key3.db for keys o secmod.db for pkcs #11 module information berkeleydb has
performance limitations, though, which prevent it from being easily used by multiple applications simultaneously.
...these new databases provide more accessibility and
performance: o cert9.db for certificates o key4.db for keys o pkcs11.txt, which is listing of all of the pkcs #11 modules contained in a new subdirectory in the security databases directory because the sqlite databases are designed to be shared, these are the shared database type.
...And 6 more matches
Navigation Timing API - Web APIs
the navigation timing api provides data that can be used to measure the
performance of a web site.
... concepts and usage you can use the navigation timing api to gather
performance data on the client side, which you can then transmit to a server using xmlhttprequest or other techniques.
... interfaces
performance the window.
performance property returns a
performance object.
...And 6 more matches
MMgc - Archive of obsolete content
the reason is that our collector zeroes memory upon free and this was hurting
performance.
...overall this wasn't a huge
performance increase due to the fact the majority of our time is spent in the mark phase.
...drc is a scheme for getting more immediate reclamation of objects, while still achieving high
performance and getting the other benefits of garbage collection.
...And 5 more matches
Profiling with Xperf
xperf is part of the microsoft windows
performance toolkit, and has functionality similar to that of shark, oprofile, and (for some things) dtrace/instruments.
...to see your xperf version, either run 'xperf' on a command line with no arguments, or start 'xperfview' and look at help -> about
performance analyzer.
...once the sdk installs, execute either wpt_x86.msi or wpt_x64.msi in the redist/windows
performance toolkit folder of the sdk's install location (typically program files/microsoft sdks/windows/v7.1/redist/windows
performance toolkit) to actually install the windows
performance toolkit tools.
...And 5 more matches
Animating CSS properties - Firefox Developer Tools
the
performance cost of animating a css property can vary from one property to another, and animating expensive css properties can result in jank as the browser struggles to hit a smooth frame rate.
... the frame rate and waterfall can give you insight into the work the browser's doing in a css animation, to help diagnose
performance problems.
...they can also give better
performance, as they give the browser more control over when to render frames, and to drop frames if necessary.
...And 5 more matches
History Service Design
this system provides additional
performance, flexibility, and querying capabilities over the old one, for both end users and extensions developers.
...
performance to ensure
performance a bunch of statements, commonly used when adding or reading visit informations, are created at startup.
... another step to improve
performance is mainly dedicated to not locking ui.
...And 4 more matches
Migrating from Firebug - Firefox Developer Tools
performance tool firebug allows to profile javascript
performance via the "profile" button within the console panel or the console.profile() and console.profileend() commands.
... the devtools provide advanced tooling regarding
performance profiling.
... a profile can be created via console.profile() and console.profileend() like in firebug or via the "start recording
performance" button in the
performance tool.
...And 4 more matches
Frame rate - Firefox Developer Tools
a frame rate of 60fps is the target for smooth
performance, giving you a time budget of 16.7ms for all the updates needed in response to some event.
... the frame rate graph in the
performance tool shows you the frame rate over the course of a recording.
...it's most familiar from film and gaming, but is now widely used as a
performance measure for websites and web apps.
...And 4 more matches
Rendering and the WebXR frame animation callback - Web APIs
but not all displays run at 60 hz; nowadays, higher
performance displays are beginning to use much higher refresh rates.
... renderer
performance concerns clearly, you have very little time to render your scene each frame.
...by simply having your computations and data ready before the frame is actually called for, you can make your site or app render much more efficiently, improving main thread
performance and generally making the user experience better.
...And 4 more matches
WebAssembly Concepts - WebAssembly
webassembly is a new type of code that can be run in modern web browsers and provides new features and major gains in
performance.
...javascript frameworks could make use of webassembly to confer massive
performance advantages and new features while still making functionality easily available to web developers.
...we have run into
performance problems, however, when trying to use javascript for more intensive use cases like 3d games, virtual and augmented reality, computer vision, image/video editing, and a number of other domains that demand native
performance (see webassembly use cases for more ideas).
...And 4 more matches
Appendix D: Loading Scripts - Archive of obsolete content
disadvantages
performance: there are several significant
performance disadvantages inherent in this method: there is currently no way to load code into sandboxes from a cache.
...in addition to the possible
performance concerns, passing data between these compartments is not entirely transparent.
...
performance: as of gecko 8.0, scripts loaded via mozijssubscriptloader.loadsubscript() are loaded from a cache.
...And 3 more matches
Anatomy of a video game - Game development
to acquire one of these timestamps, you can call window.
performance.now() and store the result as a variable.
... var tnow = window.
performance.now(); back to the topic of the main loop.
... each of these methods have similar tradeoffs: users can skip rendering frames or interpolate extra ones depending on their
performance.
...And 3 more matches
Tips for authoring fast-loading HTML pages - Learn web development
optimizing page load
performance is not just for content which will be viewed by narrowband dial-up or mobile device visitors.
... tips reduce page weight page weight is by far the most important factor in page-load
performance.
... reducing page weight through the elimination of unnecessary whitespace and comments, commonly known as minimization, and by moving inline script and css into external files, can improve download
performance with minimal need for other changes in the page structure.
...And 3 more matches
Continuous Integration
after the builds are completed, they are used to run a series of correctness and
performance tests.
... talos
performance tests all
performance tests displayed in treeherder are run using the talos framework, and denoted by the letter t.
... the talos indicators in treeherder appear green if the job successfully completed; to see the
performance data generated by the jobs, click on the
performance tab of the job details panel that pops up when you click on a job in treeherder.
...And 3 more matches
Index
66 howto problem 67 profiling xpcshell sometimes, you might want to get a
performance profile of a certain piece of javascript (like an xpcom module), to see which part takes the most time.
... 75
performance storage, toolkit api mozstorage uses sqlite as the database backend.
... it has generally good
performance for a small embedded database.
...And 3 more matches
WebGL best practices - Web APIs
in firefox, setting the pref webgl.perf.max-warnings to -1 in about:config will enable
performance warnings that include warnings about fb completeness invalidations.
... batch draw calls (prefer fewer-but-larger draw calls) fewer, larger draw operations will generally improve
performance.
...any calculation that can be done on the vertices and then just interpolated among fragments (via varyings) is a
performance boon.
...And 3 more matches
HTTP Index - HTTP
13 compression in http guide, http, compression compression is an important way to increase the
performance of a web site.
... 15 connection management in http/1.x connection management, guide, http, networking,
performance, webmechanics connection management is a key topic in http: opening and maintaining connections largely impacts the
performance of web sites and web applications.
... 43 http caching caching, guide, http the
performance of web sites and applications can be significantly improved by reusing previously fetched resources.
...And 3 more matches
Efficient animation for web games - Game development
there are several techniques worth knowing that will improve the
performance of your game or application whilst also using less battery life, especially on low-end devices.
... measure
performance there are some popular animation-related libraries and ui toolkits with animation functions that still do things like using settimeout to drive their animations, drive all their animations completely individually, or other similar things that aren’t conducive to maintaining a high frame-rate.
...it would have been good to use as much third party software as possible, but most of what we tried was either too complicated for simple use-cases, or had
performance issues on mobile.
...And 2 more matches
Tiles and tilemaps overview - Game development
this results in
performance and memory usage gains — big image files containing entire level maps are not needed, as they are constructed by small images or image fragments multiple times.
... this set of articles covers the basics of creating tile maps using javascript and canvas (although the same high level techniques could be used in any programming language.) besides the
performance gains, tilemaps can also be mapped to a logical grid, which can be used in other ways inside the game logic (for example creating a path-finding graph, or handling collisions) or to create a level editor.
...drawing all the tiles that can not be seen is wasteful, however, and can take a toll on
performance.
...And 2 more matches
Synthetic monitoring - MDN Web Docs Glossary: Definitions of Web-related terms
synthetic monitoring involves monitoring the
performance of a page in a 'laboratory' environment, typically with automation tooling in an environment that is as consistent as possible.
... with a consistent baseline, synthetic monitoring is good for measuring the effects of code changes on
performance.
... synthetic monitoring involves deploying scripts to simulate the path an end-user might take through a web application, reporting back the
performance of the simulator experiences.
...And 2 more matches
Benchmarking
any
performance metrics gathered by such builds are largely unrelated to what would be found in a release browser.
...this setting reduces build times significantly but comes with a serious hit to runtime
performance for any rust code (for example stylo and webrender).
... async stacks async stacks no longer impact
performance since firefox 78, as bug 1601179 limits async stack capturing to when devtools is opened.
...And 2 more matches
OS.File for the main thread
performance notes to avoid erasing the destination file, it is much faster to use option nooverwrite than to check manually whether the file exists.
... os.file.exists() determine whether a file exists promise<bool> exists( in string path ) arguments path the name of the file promise resolves to true if the file exists, false otherwise
performance note: for the sake of
performance, you should avoid this function whenever possible.
...
performance note: this operation is os-optimized under os x, linux/android, and windows.
...And 2 more matches
nsIAppShell
inherits from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void create(inout int argc, inout string argv); obsolete since gecko 1.9 void dispatchnativeevent(in prbool arealevent, in voidptr aevent); obsolete since gecko 1.9 void exit(); void favor
performancehint(in boolean favorperfoverstarvation, in unsigned long starvationdelay); void getnativeevent(in prboolref arealevent, in voidptrref aevent); obsolete since gecko 1.9 void listentoeventqueue(in nsieventqueue aqueue, in prbool alisten); obsolete since gecko 1.9 void resumenative(); void run(); void runinstablestate(in nsirunnable arunnable); void spindown(); obsolete since gecko 1.
...favor
performancehint() give hint to native event queue notification mechanism.
... if the native platform needs to tradeoff
performance vs.
...And 2 more matches
Timing element visibility with the Intersection Observer API - Web APIs
using this api lets everything get streamlined by the browser to reduce the impact on
performance substantially.
...function handlevisibilitychange() { if (document.hidden) { if (!previouslyvisibleads) { previouslyvisibleads = visibleads; visibleads = []; previouslyvisibleads.foreach(function(adbox) { updateadtimer(adbox); adbox.dataset.lastviewstarted = 0; }); } } else { previouslyvisibleads.foreach(function(adbox) { adbox.dataset.lastviewstarted =
performance.now(); }); visibleads = previouslyvisibleads; previouslyvisibleads = null; } } since the event itself doesn't state whether the document has switched from visible to invisible or vice-versa, the document.hidden property is checked to see if the document is not currently visible.
... if the document has just become visible, we reverse this process: first we go through previouslyvisibleads and set each one's dataset.lastviewstarted to the current document's time (in milliseconds since the document was created) using the
performance.now() method.
...And 2 more matches
Page Visibility API - Web APIs
notes: the page visibility api is especially useful for saving resources and improving
performance by letting a page avoid performing unnecessary tasks when the document isn't visible.
... policies in place to aid background page
performance separately from the page visibility api, user agents typically have a number of policies in place to mitigate the
performance impact of background or hidden tabs.
... these may include: most browsers stop sending requestanimationframe() callbacks to background tabs or hidden <iframe>s in order to improve
performance and battery life.
...And 2 more matches
will-change - CSS: Cascading Style Sheets
important: will-change is intended to be used as a last resort, in order to try to deal with existing
performance problems.
... it should not be used to anticipate
performance problems.
...will-change is intended to be used as something of a last resort, in order to try to deal with existing
performance problems.
...And 2 more matches
HTML5 - Developer guides
performance and integration: providing greater speed optimization and better usage of computer hardware.
... indexeddb indexeddb is a web standard for the storage of significant amounts of structured data in the browser and for high
performance searches on this data using indexes.
...
performance and integration web workers allows delegation of javascript evaluation to background threads, allowing these activities to prevent slowing down interactive events.
...And 2 more matches
HTTP caching - HTTP
the
performance of web sites and applications can be significantly improved by reusing previously fetched resources.
...this achieves several goals: it eases the load of the server that doesn’t need to serve all clients itself, and it improves
performance by being closer to the client, i.e., it takes less time to transmit the resource back.
... for a web site, it is a major component in achieving high
performance.
...And 2 more matches
Appendix F: Monitoring DOM changes - Archive of obsolete content
unfortunately, adding listeners for any of these events to a document has a highly deleterious effect on
performance, an effect which is not mitigated in the slightest by later removing those listeners.
...this document lays out some alternatives which do not have such severe
performance impacts.
...their major advantage is in their
performance and their ease of use, especially when combined with simple libraries.
... it is important to note, however, that this method can have severe
performance implications for certain events, namely mouseover, mouseout, and friends, which are fired very often while the mouse is moving.
Index of archived content - Archive of obsolete content
6: firefox extensions and xul applications license and authors xul school tutorial adding events and commands adding toolbars and toolbar buttons adding menus and submenus adding sidebars adding windows and dialogs appendix a: add-on
performance appendix b: install and uninstall scripts appendix c: avoiding using eval in add-ons appendix d: loading scripts appendix e: dom building and insertion (html & xul) appendix f: monitoring dom changes connecting to remote content custom xul elements with xbl getting started with firefox ...
... local storage mozilla documentation roadmap observer notifications setting up a development environment the box model the essentials of an extension useful mozilla community sites user notifications and alerts xpcom objects
performance best practices in extensions search extension tutorial (draft) security best practices in extensions session store api setting up an extension development environment signing an xpi signing an extension supporting search suggestions in search plugins tabbed browser techniques ...
...pper drag and drop events editor embedding guide embedding faq embedding mozilla in a java application using javaxpcom error console exception logging in javascript existing content extension frequently asked questions external cvs snapshots in mozilla-central fast graphics
performance with html firefox block and line layout cheat sheet content states and the style system disabling interruptible reflow document loading - from load start to finding a handler documentation for bidi mozilla downloading nightly or trunk builds jss build instructions for osx 10.6 ...
...ayout regression tests table layout strategy tamarin abcasm tamarin acceptance testing abc assembler tests actionscript acceptance tests tamarin acceptance test template actionscript
performance tests cmdline tests running tamarin acceptance tests running tamarin
performance tests tamarin build system documentation tamarin releases tamarin-central rev 703:2cee46be9ce0 tamarin roadmap tamarin build documen...
Tamarin Tracing Build Documentation - Archive of obsolete content
for instructions on tamarin central, please see tamarin build documentation supported platforms operating system processor status windows xp x86 supported, acceptance and
performance tests automated in buildbot mac os x 10.4 x86 supported, acceptance and
performance tests automated in buildbot linux - ubuntu 8.0.4 x86 supported, acceptance and
performance tests automated in buildbot windows mobile (pocket pc 5.0) armv4t supported, acceptance and
performance tests automated in buildbot raw image (no os) armv5 supported, acceptance and
performance tests not done linux (nokia n810) armv5 supported, acceptance and
performance tests not done current build status the ...
...http://developer.mozilla.org/en/docs...mpliance_tests running tamarin
performance tests follow the same steps as the tamarin central instructions.
...
performance tests are also run on every build.
... see the latest build
performance report for the latest results or a weekly
performance report.
Tools for game development - Game development
asm.js asm.js is a very limited subset of the javascript language, which can be greatly optimized and run in an ahead-of-time (aot) compiling engine for much faster
performance than your typical javascript
performance.
... emscripten an llvm to javascript compiler; with emscripten, you can compile c++ and other languages that can compile to llvm bytecode into high-
performance javascript.
... gecko profiler the gecko profiler extension lets you profile your code to help figure out where your
performance issues are so that you can make your game run at top speed.
...a lot of this is going to be covered by will in tools, but here we should provide a kind of practical toolchain tutorial for debugging games, with links to will's stuff: basic tools overview shader editor
performance tools (still in production, estimated early 2014) ...
PerfMeasurement.jsm
the perfmeasurement.jsm javascript code module lets you take detailed
performance measurements of your code.
...before you can use this module, you need to import it into your scope: components.utils.import("resource://gre/modules/perfmeasurement.jsm") see measuring
performance using the perfmeasurement.jsm code module for details on how to use this api.
...start() starts measuring the
performance indicators that were specified when the perfmeasurement object was created.
...stop() stops measuring
performance data.
Shumway
the project is not exactly a developer tool but it is something that content creators should test against (and report bugs or
performance issues to).
... the user has adobe flash player disabled (or set to "click-to-enable") for
performance or security reasons.
...users who disable flash because of security or
performance concerns can still see content through shumway because it cannot be forced to behave worse than javascript (and webgl, etc.) allows.
...
performance and compatibility issues with flash content should be reported through github.
SpiderMonkey 45
it continues to improve
performance over previous spidermonkey releases.
...onstackornull (bug 814497) js::copyasyncstack (bug 1160307) js::getsavedframesource (bug 1216819) js::getsavedframeline (bug 1216819) js::getsavedframecolumn (bug 1216819) js::getsavedframefunctiondisplayname (bug 1216819) js::getsavedframeasynccause (bug 1216819) js::getsavedframeasyncparent (bug 1216819) js::getsavedframeparent (bug 1216819) js::buildstackstring (bug 1133191) js::flush
performancemonitoring (bug 1181175) js::reset
performancemonitoring (bug 1181175) js::dispose
performancemonitoring (bug 1208747) js::setstopwatchismonitoringcpow (bug 1156264) js::getstopwatchismonitoringcpow (bug 1156264) js::setstopwatchismonitoringjank (bug 1156264) js::getstopwatchismonitoringjank (bug 1156264) js::isstopwatchactive (bug 674779) js::getperfmonitoringtestcpurescheduling (bug 118117...
...5) js::addcpow
performancedelta (bug 1181175) js::setstopwatchstartcallback (bug 1208747) js::setstopwatchcommitcallback (bug 1208747) js::setget
performancegroupscallback (bug 1208747) js_stringhasbeeninterned renamed to js_stringhasbeenpinned (bug 1178581) js_internjsstring renamed to js_atomizeandpinjsstring (bug 1178581) js_internstringn renamed to js_atomizeandpinstringn (bug 1178581) js_internstring renamed to js_atomizeandpinstring (bug 1178581) js_internucstringn renamed to js_atomizeandpinucstringn (bug 1178581) js_internucstring renamed to js_atomizeandpinucstring (bug 1178581) deleted apis js_getcompartmentstats js_seticumemoryfunctions js_isgcmarkingtracer js_ismarkinggray js_idarraylength js_idarrayget js_destroyidarray js_defaultvalue js_getparent js_setparent js:...
...we have instead chosen to concentrate on overall
performance and accuracy as our primary concerns.
Storage
note: if you need to execute a statement multiple times, caching the result of createstatement will give you a noticeable
performance improvement because the sql query does not need to be parsed each time.
...otherwise, it's strongly recommended that you use asynchronous execution, for
performance reasons.
... transactions transactions can be used to either improve
performance, or group statements together as an atomic operation.
... mozistoragestatementwrapper storage statement wrapper mozistorageservice storage service storage:
performance how to get your database connection performing well.
Blocking By Domain - Plugins
plugins such as flash are a
performance and security problem for firefox users.
...these blocks improve firefox security and
performance and also make the click-to-activate feature more valuable to users by reducing unnecessary prompts.
... criteria in order to improve firefox security and
performance, there are two major categories of sites mozilla may choose to add to plugin domain blocking: sites commonly embedded in a 3rd-party context web sites which are commonly embedded into other sites using iframes can have a large impact on browser security and also cause many sites to show plugin activation prompts.
...in order to improve site
performance and reduce the number of plugin prompts that users see, popular sites that show unnecessary plugin prompts or slow the browser down with unnecessary plugins will be added to the plugin block list.
Allocations - Firefox Developer Tools
the allocations view in the
performance tool shows you which functions in your page are allocating the most memory over the course of the profile.
... for
performance this is important mostly because allocating a lot of memory, or making a lot of allocations, can trigger garbage collection.
... to enable the allocations view, you must check "record allocations" in the
performance tool settings, before recording a profile.
... gc events are shown as red markers in the waterfall view, and are a big red flag for responsiveness, sometimes running for hundreds of milliseconds: if you're seeing gc events in your site's
performance profile, what can you do?
Waterfall - Firefox Developer Tools
so if you see a sign of a
performance problem - a drop in the frame rate, for example - you can go to the waterfall to see what the browser was doing at that point in the recording.
...but there are common patterns which can alert you to possible
performance problems.
... the animating css properties article shows how animating different css properties can give different
performance outcomes, and how the waterfall can help signal that.
...gc is relevant to
performance because while it's running the javascript engine must be paused, so your program is suspended and will be completely unresponsive.
Background Tasks API - Web APIs
because event handling and screen updates are two of the most obvious ways users notice
performance issues, it's important for your code to be a good citizen of the web and help to prevent stalls in the execution of the event loop.
... getting the most out of idle callbacks because idle callbacks are intended to give your code a way to cooperate with the event loop to ensure that the system is utilized to its full potential without over-tasking it, resulting in lag or other
performance problems, you should be thoughtful about how you go about using them.
...using timeouts can ensure that your code runs in a timely manner, but it can also allow you to cause lag or animation stutters by mandating that the browser call you when there's not enough time left for you to run without disrupting
performance.
...this isn't a polyfill, since it's not functionally identical; settimeout() doesn't let you make use of idle periods, but instead runs your code when possible, leaving us to do the best we can to avoid causing the user to experience
performance lag.
WebGLRenderingContext.vertexAttribPointer() - Web APIs
for highest
performance, interleave the attributes and use the smallest data type that still accurately represents your geometry.
...keep in mind that these webgl functions have a slow
performance and it is better to store the state inside your javascript application.
...for better
performance, we align the data to 32 bits by also storing a fourth zero-valued component, bringing the total size to 4 bytes.
...32(20 * i + 8, vertices[i].position[2], true); dv.setint8(20 * i + 12, vertices[i].normal[0] * 0x7f); dv.setint8(20 * i + 13, vertices[i].normal[1] * 0x7f); dv.setint8(20 * i + 14, vertices[i].normal[2] * 0x7f); dv.setint8(20 * i + 15, 0); dv.setuint16(20 * i + 16, vertices[i].texcoord[0] * 0xffff, true); dv.setuint16(20 * i + 18, vertices[i].texcoord[1] * 0xffff, true); } for higher
performance, we could also do the previous json to arraybuffer conversion on the server-side, e.g.
CSS Containment - CSS: Cascading Style Sheets
the aim of the css containment specification is to improve
performance of web pages by allowing developers to isolate a subtree of the page from the rest of the page.
... if the browser knows that a part of the page is independent, rendering can be optimized and
performance improved.
...therefore this property gives you a nice way to explain to the browser this fact, and allow it to make
performance optimizations based on that knowledge.
... size containment article { contain: size; } size containment does not offer much in the way of
performance optimizations when used on its own.
Compression in HTTP - HTTP
compression is an important way to increase the
performance of a web site.
...for better
performance of a web site, it is ideal to compress as much as possible, while keeping an acceptable level of quality.
... end-to-end compression for compression, end-to-end compression is where the largest
performance improvements of web sites reside.
... as compression brings significant
performance improvements, it is recommended to activate it for all files, but already compressed ones like images, audio files and videos.
HTTP conditional requests - HTTP
strong validation is very strict and may be difficult to guarantee at the server level, but it does guarantee no data loss at any time, sometimes at the expense of
performance.
...building a system of etags that creates weak validation may be complex, as it involves knowing the importance of the different elements of a page, but is very useful towards optimizing cache
performance.
...this impairs
performance, and http has a specific header to avoid this scenario: if-range: this solution is more efficient, but slightly less flexible, as only one etag can be used in the condition.
...which client's changes are to be kept, will vary with the speed they commit; this depends on the
performance of the clients, of the server, and even of the human editing the document at the client.
Web video codec guide - Web media technologies
additionally, encoders and decoders are still being optimized for
performance, and hardware encoders and decoders are still mostly in development rather than production.
...its encoding and decoding
performance is comparable to or slightly faster than that of avc, but with better quality.
... if you are only able to offer a single version of each video, you can choose the format that's most appropriate for your needs.the first one is recommended as being a good combnination of quality,
performance, and compatibility.
...you will likely need to adjust these values depending on hardware
performance, your requirements, and the specific codecs you choose to use.
Progressive web app structure - Progressive web apps (PWAs)
it works great across browsers, but it suffers in terms of time navigating between pages and therefore general perceived
performance — loading a page requires a new round trip to the server.
... this architecture allows a website to benefit the most from all the pwa features — it caches the app shell and manages the dynamic content in a way that greatly improves the
performance.
... the website feels like a native app with instant interaction and solid
performance while keeping all the benefits of the web.
...when it is available, it will be the fastest way of serving the content — the benefits are going to be huge in terms of
performance.
Progressive loading - Progressive web apps (PWAs)
in this article we will go even further and improve the
performance of the app by progressively loading its resources.
...we could go even further and move everything from style.css to the <style> tag in the <head> of index.html — this would improve
performance even more, but for the readability of the example we will skip that approach too.
...it's not unusual to have megabytes of image data to download before announcing the site is ready, but this again creates a bad perception of
performance.
...that way the initial html structure would be minimal, loading time even smaller, and we would have even greater
performance benefits.
Structural overview of progressive web apps - Progressive web apps (PWAs)
it works great across browsers, but it suffers in terms of time navigating between pages and therefore general perceived
performance — loading a page requires a new round trip to the server.
... benefits of the app shell pattern this architecture allows a web site to benefit the most from all the pwa features — it caches the app shell and manages the dynamic content in a way that greatly improves the
performance.
... the website feels like a native app with instant interaction and solid
performance while keeping all the benefits of the web.
...the
performance benefits will be truly spectacular.
2015 MDN Fellowship Program - Archive of obsolete content
github: nickdesaulniers twitter: @lostoracle web app
performance brief project description web
performance is a feature that needs to be considered from serving content to rendering to interactivity.
... finding and addressing
performance bottlenecks depends on tooling the browser networking and rendering but also, often more important, user perception.
... activities and deliverables help us develop a curriculum on mdn for teaching developers to master
performance tooling and to develop web apps with
performance as a feature.
Intercepting Page Loads - Archive of obsolete content
note:
performance is very important when it comes to add-ons and page loads.
... read the recommendations in appendix a regarding
performance if you're planning on implementing any of these.
...picking the right filter not only simplifies your code, but also reduces the
performance impact your extension will have in regular navigation.
Add-ons - Archive of obsolete content
legacy add-ons this section contains links to documentation for legacy technology for add-on development, including: legacy extensions for firefox for android add-ons that work with desktop firefox do not automatically work in firefox for android: overlay extensions this page contains links to documentation for the approach to developing extensions for gecko-based applications which uses:
performance best practices in extensions one of firefox's great advantages is its extreme extensibility.
...there is a down side to this: poorly written extensions can have a severe impact on the browsing experience, including on the overall
performance of firefox itself.
... this article offers some best practices and suggestions that can not only improve the
performance and speed of your extension, but also of firefox itself.
Layout System Overview - Archive of obsolete content
in all cases, the determination of the impact is critical to avoid either the problem of not updating impacted elements, thus presenting an invalid presentation, or updating too much of the presentation and thus doing too much work, potentially causing
performance problems.
...thus the html editor and text controls put considerable
performance requirements on the layout system's handling of dynamic content manipulation.
...the idea of formatting text and graphics to fit within a given screen area sounds simple, but the interaction of in-flow and out-of-flow elements, the considerations of incremental page rendering, and the
performance concerns of dynamic content changes makes for a system that has a lot of work to do, and a lot of data to manage.
TraceVis - Archive of obsolete content
tracevis is a
performance visualization system for tracemonkey.
...the log can be postprocessed into a visualization that can be used to rapidly diagnose many tracing-related
performance issues.
...these directions create an optimized build, because optimized builds are usually better for
performance analysis.
Building Menus With Templates - Archive of obsolete content
this allows for better
performance as the entire content of a complex menu does not need to be created until the user needs to use the menu.
...note that the generated content does not get removed again when the menu is closed again; this extra feature of menus is only intended to be a
performance enhancement to speed up the time it takes to display a window by avoiding extra generation that can be put off until later.
...you can actually do this, however, you no longer receive the
performance benefit as the entire content will be generated right away.
The Joy of XUL - Archive of obsolete content
in fact, many developers invest a significant amount of effort to achieve these results in their dhtml web applications but at the cost of complexity and
performance and without any supporting standards.
...to improve
performance a greater proportion of application logic was migrated from javascript to the xpcom component.
...this led to increased screen drawing
performance and reduced memory and disk footprint requirements of the application.
Archived Mozilla and build documentation - Archive of obsolete content
dtrace dtrace is sun microsystem's dynamic tracing framework that allows developers to instrument a program with probes that have little to no effect on
performance when not in use and very little when active.
... tracevis tracevis is a
performance visualization system for tracemonkey.
...the log can be postprocessed into a visualization that can be used to rapidly diagnose many tracing-related
performance issues.
asm.js - Game development
however, by defining an explicit standard we can work on optimizing this kind of code even more and getting as much
performance as we can out of it.
...emscripten, a c/c++ to javascript compiler, emits asm.js code to make it run with near native
performance on several browsers.
... the
performance characteristics are closer to native code than that of standard javascript.
Page load time - MDN Web Docs Glossary: Definitions of Web-related terms
let time =
performance.timing; let pageloadtime = time.loadeventstart - time.navigationstart; while page load time 'sounds' like the perfect web
performance metric, it isn't.
...in addition, web
performance isn't just about when the load event happens.
... it's also about perceived
performance, responsiveness, jank and jitter.
Introduction to client-side frameworks - Learn web development
some extra code is inevitable, and a framework that supports tree-shaking (removal of any code that isn't actually used in the app during the build process) will allow you to keep your applications small, but this is still a factor you need to keep in mind when considering your app's
performance, especially on more network/storage-constrained devices, like mobile phones.
...however, if your priorities don't carefully guard
performance and accessibility, frameworks will amplify your fragility, your bloat, and your inaccessibility.
...there are a number of advantages of this approach, mostly around
performance (your user's device isn’t building the page with javascript; it's already complete) and security (static pages have fewer attack vectors).
Accessibility/LiveRegionDevGuide
filtering for
performance the most significant difference between at-spi and iaccessible2 is that at-spi is an inter-process communication service while iaccessible2 runs in process.
... as a result, care must be taken in an at-spi based application to minimize
performance degradation by only acting on events that are truly live regions.
...the event should be filtered out as early as possible to prevent
performance degradation.
Mozilla's Section 508 Compliance
(e) when bitmap images are used to identify controls, status indicators, or other programmatic elements, the meaning assigned to those images shall be consistent throughout an application's
performance.
...see functional
performance criteria below.
... functional
performance criteria requirement windows linux/unix mac os requirement windows linux/unix mac os a) at least one mode of operation and information retrieval that does not require user vision shall be provided, or support for assistive technology used by people who are blind or visually impaired shall be provided.
The Firefox codebase: CSS Guidelines
using descendant selectors is good practice for
performance when possible: for example: .autocomplete-item[selected] > .autocomplete-item-title would be more efficient than .autocomplete-item[selected] .autocomplete-item-title overriding css before overriding any css rules, check whether overriding is really needed.
... layout &
performance layout mixing xul flexbox and html flexbox can lead to undefined behaviour.
... reflows and style flushes see
performance best practices for firefox front-end engineers for more information about this.
Power profiling overview
standard
performance profiling tools that measure cpu usage or proxies of cpu usage (such as instruction counts) typically provide high-context measurements.
... for high cpu usage, many profilers can be used: firefox's dev tools profiler, the gecko profiler, or generic
performance profilers.
... on mac workloads that use graphics, activity monitor's "energy" tab can tell you if the high-
performance gpu is being used, which uses more power than the integrated gpu.
Profiling with Instruments
official apple documentation instruments user guide instruments user reference instruments help articles instruments help
performance overview basic usage select "time profiler" from the "choose a profiling template for:" dialog.
... how do we monitor
performance counters (cache miss etc.)?
...you also need the fix to bug 719427 the dt
performancesession api can be used to control profiling from applications like the old chud api we use in shark builds.
Creating JavaScript tests
performance testing and general advice do not attempt to test the
performance of engine features in the test suite.
... do not add
performance tests to the test suite.
...for this reason, the best place to find out if a change is
performance sensitive is on arewefastyet.com.
Exact Stack Rooting
performance tweaking in aggregate, exact and conservate stack rooting should have similar
performance.
... the
performance tradeoffs that these techniques make, however, are quite different.
... if the extra overhead of exact rooting does end up adding an unacceptable cost to a specific code path that is not mitigated by a faster gc, there are some tricks you can use to get better
performance at the cost of more complex code.
JS_MaybeGC
calling js_maybegc periodically when the application is busy, from a jsbranchcallback or jsoperationcallback added in spidermonkey 1.8, can keep memory usage down and improve
performance.
...the analysis is simplistic but produces acceptable
performance for many applications.
... in some applications, js_maybegc collects more often than it should for ideal
performance.
Thread Sanitizer
ignoring known races in some cases, races can be confirmed to be benign and fixing them would cause possible
performance issues.
...compile-time blacklisting is the preferred way of blacklisting, because it does not have a
performance impact.
...however, unlike compile-time blacklisting, runtime suppressions do have a
performance impact, especially if the race in question keeps showing up a lot.
Mozilla internal string guide
in order to avoid unnecessary copying of string data (which can have significant
performance cost), the string classes support different ownership models.
...this can be a
performance win.
...this can be a
performance hit.
Reference Manual
nscomptrs
performance is generally slightly more efficient that raw pointers in space, and negligably less efficient in time.
...
performance concerns should not deter you from using nscomptr.
...time [[more time-
performance measurements are needed.]] in places where two or more subroutines calls are required, i.e., of addref, release, and queryinterface, some nscomptr routines are factored, and hence, require additional time corresponding to invoking a subroutine.
Index
the upside is that is has been a major
performance win why did you do this?
... any new window
performance problems that mozilla has are especially painful in mail compose, as we need to create a new compose window on every new mail message or reply.
... 28 gloda thunderbird 3, thunderbird thunderbird includes a new message indexing and search system (gloda) that improves search
performance, provides sophisticated full-text search capabilities and categorized search results.
WebIDL bindings
(this allows the return value to be implicitly converted to a parentobject instance by the compiler via one of that class's non-explicit constructors.) if many instances of myinterface are expected to be created quicky, the return value of getparentobject should itself inherit from nswrappercache for optimal
performance.
... see this sample patch that migrates window.
performance.* to webidl bindings.
...it has a conversion operator to nsstring& so that it can be passed to methods that take that type or nsastring&, but callees that care about
performance, have an nsstringbuffer available, and promise to hold on to the nsstringbuffer at least until the binding code comes off the stack can also take a domstring directly for their string return value and call its setstringbuffer method with the nsstringbuffer and its length.
Mozilla
any
performance metrics gathered by such builds are largely unrelated to what would be found in a release browser.
... omni.ja (formerly omni.jar) firefox and thunderbird achieve
performance improvements by moving many of their internal parts from being standalone files or sets of jar files into just one jar file called omni.ja; this reduces the amount of i/o needed to load the application.
...
performance the articles linked to from here will help you improve
performance, whether you're developing core mozilla code or an add-on.
Call Tree - Firefox Developer Tools
you can find the specific profile we discuss here - just import it to the
performance tool to follow along.
...these aren't relevant to the
performance of your site.
... to display this view, click the gear icon on the right-hand end of the
performance tab and select invert call tree.
Sorting algorithms comparison - Firefox Developer Tools
this article describes a simple example program that we use in two of the
performance guides: the guide to the call tree and the guide to the flame chart.
... this program compares the
performance of three different sorting algorithms: bubble sort selection sort quicksort it consists of the following functions: sortall() top-level function.
...you can also download the specific profile we discuss - just import it to the
performance tool if you want to follow along.
AudioContext.getOutputTimestamp() - Web APIs
audiotimestamp.
performancetime: an estimation of the moment when the sample frame corresponding to the stored contexttime value was rendered by the audio output device, in the same units and origin as
performance.now().
...
performancetime: a point in the time coordinate system of a
performance interface; the time after the document containing the audio context was first rendered examples in the following code we start to play an audio file after a play button is clicked, and start off a requestanimationframe loop running, which constantly outputs the contexttime and
performancetime.
...rce.start(0); play.setattribute('disabled', 'disabled'); raf = requestanimationframe(outputtimestamps); }); stop.addeventlistener('click', () => { source.stop(0); play.removeattribute('disabled'); cancelanimationframe(raf); }); // function to output timestamps function outputtimestamps() { let ts = audioctx.getoutputtimestamp() console.log('context time: ' + ts.contexttime + ' |
performance time: ' + ts.
performancetime); raf = requestanimationframe(outputtimestamps); } specifications specification status comment web audio apithe definition of 'getoutputtimestamp()' in that specification.
DOMHighResTimeStamp - Web APIs
usage notes you can get the current timestamp value—the time that has elapsed since the context was created—by calling the
performance method now().
... example to determine how much time has elapsed since a particular point in your code, you can do something like this: let starttime =
performance.now(); /* ...
...*/ let elapsedtime =
performance.now() - starttime; upon completion, the value of elapsedtime is the number of milliseconds that have elapsed since you recorded the starting time in line 1.
EventTarget.addEventListener() - Web APIs
see improving scrolling
performance with passive listeners to learn more.
... to same element // case 3 for(let i=0, j=0 ; i<els.length ; i++){ /* do lots of stuff with j */ els[j].addeventlistener("click", processevent = function(e){/*do something*/}, false); } // case 4 for(let i=0, j=0 ; i<els.length ; i++){ /* do lots of stuff with j */ function processevent(e){/*do something*/}; els[j].addeventlistener("click", processevent, false); } improving scrolling
performance with passive listeners according to the specification, the default value for the passive option is always false.
... however, this introduces the potential for event listeners handling certain touch events (among others) to block the browser's main thread while it is attempting to handle scrolling, resulting in possibly enormous reduction in
performance during scroll handling.
HTMLCanvasElement.getContext() - Web APIs
failifmajor
performancecaveat: boolean that indicates if a context will be created if the system
performance is low or if no hardware gpu is available.
... "high-
performance": prioritizes rendering
performance over power consumption.
... "low-power": prioritizes power saving over rendering
performance.
MutationEvent - Web APIs
the practical reasons to avoid the mutation events are
performance issues and cross-browser support.
...
performance adding dom mutation listeners to a document profoundly degrades the
performance of further dom modifications to that document (making them 1.5 - 7 times slower!).
... the
performance effect is limited to the documents that have the mutation event listeners.
PeformanceObserver.disconnect() - Web APIs
the disconnect() method of the
performanceobserver interface is used to stop the
performance observer from receiving any
performance entry events.
... syntax
performanceobserver.disconnect(); example var observer = new
performanceobserver(function(list, obj) { var entries = list.getentries(); for (var i=0; i < entries.length; i++) { // process "mark" and "frame" events } }); observer.observe({entrytypes: ["mark", "frame"]}); function perf_observer(list, observer) { // process the "measure" event // ...
... // disable additional
performance events observer.disconnect(); } var observer2 = new
performanceobserver(perf_observer); observer2.observe({entrytypes: ["measure"]}); specifications specification status comment
performance timeline level 2the definition of 'disconnect()' in that specification.
WebGL: 2D and 3D graphics for the web - Web APIs
webgl (web graphics library) is a javascript api for rendering high-
performance interactive 3d and 2d graphics within any compatible web browser without the use of plug-ins.
... webgl best practices tips and suggestions to help you improve the quality,
performance, and reliability of your webgl content.
... libraries glmatrix is a javascript matrix and vector library for high-
performance webgl apps.
Using Web Workers - Web APIs
passing data by transferring ownership (transferable objects) google chrome 17+ and firefox 18+ contain an additional way to pass certain types of objects (transferable objects, that is objects implementing the transferable interface) to or from a worker with high
performance.
... transferable objects are transferred from one context to another with a zero-copy operation, which results in a vast
performance improvement when sending large data sets.
...var uint8array = new uint8array(1024 * 1024 * 32); // 32mb for (var i = 0; i < uint8array.length; ++i) { uint8array[i] = i; } worker.postmessage(uint8array.buffer, [uint8array.buffer]); note: for more information on transferable objects,
performance, and feature-detection for this method, read transferable objects: lightning fast!
XRWebGLLayer.getNativeFramebufferScaleFactor() static method - Web APIs
the recommended webgl frame buffer resolution is the best possible estimate of the resolution necessary to contain all of fthe xrviews needed by the device while at the same time providing typical applications an acceptable balance of image quality and
performance.
...consider a frame buffer which at full size looks like this: if, on this device, it's determined that due to gpu limitations the browser needs to reduce image quality in order to improve
performance to an acceptable level, it might choose to halve the resolution.
... examples in this example, we request a frame buffer at the device's native resolution, regardless of any
performance concerns: function requestnativescalewebgllayer(gl, xrsession) { return gl.makexrcompatible().then(() => { let scalefactor = xrwebgllayer.getnativeframebufferscalefactor(xrsession); let gllayer = new xrwebgllayer(xrsession, gl, { framebufferscalefactor: scalefactor }); xrsession.updaterenderstate({ baselayer: gllayer }); }); }; this starts by calling the...
position - CSS: Cascading Style Sheets
mdn understanding wcag, guideline 1.4 explanations visual presentation: understanding sc 1.4.8 | understanding wcag 2.0
performance & accessibility scrolling elements containing fixed or sticky content can cause
performance and accessibility issues.
...depending on the content needing to be repainted, the browser
performance, and the device's processing speed, the browser may not be able to manage repaints at 60 fps, causing accessibility concerns for people with sensitivities and jank for everyone.
... one solution is to add will-change: transform to the positioned elements to render the element in its own layer, improving repaint speed and therefore improving
performance and accessibility.
Mutation events - Developer guides
the practical reasons to avoid the mutation events are
performance issues and cross-browser support.
...
performance adding dom mutation listeners to a document profoundly degrades the
performance of further dom modifications to that document (making them 1.5 - 7 times slower!).
... the
performance effect is limited to the documents that have the mutation event listeners.
Index - Developer guides
it can be helpful to think of it in terms of three goals for improving your site’s user experience: presentation, content, and
performance.
... 36 optimization and
performance landing, optimization,
performance, web when building modern web apps and sites, it's important to make your content perform well.
... there are several tools available to check the
performance of a website or blog.
A hybrid approach - Developer guides
we can also address some of the
performance problems with responsive design by incorporating server-side techniques.
...but even if it does not work, it is no worse with respect to
performance than only using fluid images.
... by combining the techniques listed above, we can get a mobile web development strategy that is both more flexible than pure separate sites and has better
performance than pure responsive design.
Mobile-friendliness - Developer guides
it can be helpful to think of it in terms of three goals for improving your site’s user experience: presentation, content, and
performance.
...goal #3 (
performance) “give your users a smooth experience, even on a slow connection.” though things have been getting better in recent years, browsing the internet over a wireless data connection can still be pretty painful.
... this makes it more essential than ever to practice good
performance practices, only sending the user the bits they will actually need.
HTML documentation index - HTML: Hypertext Markup Language
149 <link>: the external resource link element element, html, html document metadata, link, reference, web, web
performance, metadata the html external resource link element (<link>) specifies relationships between the current document and an external resource.
... 193 <source>: the media or image source element element, html, html embedded content, media, reference, web, web
performance the html <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.
... 235 preloading content with rel="preload" guide, html, javascript, link, media,
performance, web
performance, as, preload, rel the preload value of the <link> element's rel attribute lets you declare fetch requests in the html's <head>, specifying resources that your page will need very soon, which you want to start loading early in the page lifecycle, before browsers' main rendering machinery kicks in.
Redirections in HTTP - HTTP
besides the small
performance hit of an additional round-trip, users rarely notice the redirection.
... use cases there are numerous use cases for redirects, but as
performance is impacted with every redirect, their use should be kept to a minimum.
...a redirect has a significant
performance cost (as an extra http request occurs).
Inheritance and the prototype chain - JavaScript
'use strict'; class polygon { constructor(height, width) { this.height = height; this.width = width; } } class square extends polygon { constructor(sidelength) { super(sidelength, sidelength); } get area() { return this.height * this.width; } set sidelength(newlength) { this.height = newlength; this.width = newlength; } } var square = new square(2);
performance the lookup time for properties that are high up on the prototype chain can have a negative impact on the
performance, and this may be significant in the code where
performance is critical.
...additionally, the slow object initialization can be a
performance black hole if using the second argument because each object-descriptor property has its own separate descriptor object.
...also, be aware of the length of the prototype chains in your code and break them up if necessary to avoid possible
performance problems.
Object.prototype.__proto__ - JavaScript
the effects on the
performance of altering inheritance are subtle and far-flung, and are not limited to simply the time spent in obj.__proto__ = ...
...if you care about
performance you should avoid setting the [[prototype]] of an object.
...it is deprecated in favor of object.getprototypeof/reflect.getprototypeof and object.setprototypeof/reflect.setprototypeof (though still, setting the [[prototype]] of an object is a slow operation that should be avoided if
performance is a concern).
Transport Layer Security - Web security
tls 1.3 includes numerous changes that improve security and
performance.
...though the
performance gains from 0-rtt can be significant, they come with some risk of replay attack, so some care is needed before enabling this feature.
...the 0-rtt handshake can provide significant
performance gains for latency sensitive applications, like the web.
JavaScript timers - Archive of obsolete content
performance.now()
performance.now() returns a timestamp, measured in milliseconds, accurate to one thousandth of a millisecond.
... this timestamp is equal to the number of milliseconds since the navigationstart attribute of the
performance.timing interface.
Setting up an extension development environment - Archive of obsolete content
development profile the use of a separate user profile for development can be advantageous, averting
performance degradation from development related settings, and further isolating personal data (such as bookmarks, extensions, and settings) from your testing environment.
...however, these preferences can degrade
performance, so you may want to use a separate development profile when you enable these preferences.
Promises - Archive of obsolete content
promise apis for common asynchronous operations due to the
performance and stability costs of synchronous io, many apis which rely on it have been deprecated.
...these older interfaces should be avoided, even in their asynchronous forms, due to their
performance penalties and needless complexity.
List of Mozilla-Based Applications - Archive of obsolete content
ry software aliwal geocoder geocoding & data on a map amarok xul remote remote control for amarok music player ample sdk javascript gui-framework aol instant messenger im client uses nss apache web server doesn't use nss by default, but can be configured to use nss with mod_nss ssl module apicawatch site
performance monitoring tool uses firefox as part of its monitoring package astyle css editor editing tool atmail webmail client aviva for java mainframe connectivity product uses mozilla rhino babelgum internet tv service basilisk pre-servo xul-based web browser uses most of the firefox 55 source code batik java-base...
...r community legally backed by mozilla foundation with 2.5 million downloads secure browser browser that uses virtualization created by dell sept cms for lemonde.fr web site more information here (in english) and here (in french) skyfire mobile browser sipear im client smartreport supervision appliance network monitoring and
performance management smartreport is an appliance created by acipia (france).
Tamarin Acceptance Testing - Archive of obsolete content
the following test suites: acceptance test suite [info] self tests [info] submit a sandbox build request to test against platforms that you may not have locally [info] available tamarin acceptance test suites actionscript acceptance tests: actionscript acceptance tests running tamarin acceptance tests abc assembler tests cmdline tests
performance tests actionscript
performance tests running tamarin
performance tests built-in self tests see instructions in doc/selftest.html in the tamarin repository.
... misc the acceptance and
performance tests can be run on windows mobile devices connected to windows desktop machine with activesync.
Tamarin build documentation - Archive of obsolete content
running tamarin tests see running tamarin acceptance tests and running tamarin
performance tests building tamarin windows mobile utilities the tamarin windows mobile utilities allows the existing acceptance and
performance testsuites to be run on a windows mobile device connected to a windows desktop machine by activesync or windows mobile device center (for windows vista and windows 7).
...s as a proxy copying and running abc files on the windows mobile device build a windows mobile tamarin shell, copy the shell to the windows mobile device in \program files\shell\avmshell.exe (optional) can sanity check the windows mobile shell is functioning by running $avm hello.abc (where hello.abc is a simple abc to print a string, or can substitute with any test abc) now any acceptance or
performance tests can be run as on desktop using test/acceptance/runtests.py or tests/
performance/runtests.py tamarin buildbot adobe maintains a continuous build and test system for tamarin redux, similar to tinderbox.
Tamarin-central rev 703:2cee46be9ce0 - Archive of obsolete content
performance testsuite time metric the following is a comparison of the current tamarin-central (tc-703) versus the prior build (tc-700) as well as current against the vm in flash player 10.
... vs flash10: 0.8% fastertc-703 vs tc-700: 16.4% fastertc-703 vs flash10: 148.7% fastertc-703 vs tc-700: 0.1% slowertc-703 vs flash10: 5.2% faster linux (ubuntu linux, 2.13 ghz dual core)tc-703 vs tc-700: 6.0% fastertc-703 vs flash10: 1.7% fastertc-703 vs tc-700: 89.5% fastertc-703 vs flash10: 182.0% fastertc-703 vs tc-700: 6.1% fastertc-703 vs flash10: 1.4% faster
performance testuite memory metric the following is a comparison of the current tamarin-central (tc-703) versus the prior build (tc-700).
Trees - Archive of obsolete content
this means that the tree is scalable to any number of rows without any
performance problems.
... of course, this is independant of the
performance of the view object itself.
2006-10-20 - Archive of obsolete content
paul reed announced that: sparky, the linux
performance test machine for the 1.8 branchs, is being decommissioned.
... he also added that the linux
performance test data is now being provided by bl-bldlnx01.
2006-11-24 - Archive of obsolete content
gecko 1.9 intl rendering peformance november 20th: boris zbarskyannounced that: we need to create an intl
performance page set or multiple intl
performance page sets and run at least the pageload tests for all of these pagesets, and preferably also some sort of dhtml tests using pages of the different types.
... he stated that the goal here is that once the tests are set up we can do a gecko 1.8 baseline so that we know what our
performance goals for gecko 1.9 are.
MSX Emulator (jsMSX) - Archive of obsolete content
as you may have realized, many challenges on
performance are faced when developing in javascript.
...how to help lots of work to optimize the
performance and add msx 2.0, 2.0+ and turbor features are still necessary.
Back to the Server: Server-Side JavaScript On The Rise - Archive of obsolete content
in fact, the next javascript engine from mozilla, tracemonkey, is poised to boost javascript
performance by factors of 20 to 40 times according to brendan eich, mozilla cto and the creator of javascript.
... in recent developments we also see the advent of other performant engines for javascript such as v8 from google and squirrelfish for webkit, these engines are raising the bar on
performance and help to maintain a competitive environment that will hopefully direct competitive focus on the
performance aspect of all the major javascript implementations.
Introduction to game development for the Web - Game development
thanks to massive
performance improvements in javascript just-in-time compiler technology and new apis, you can build games that run in the browser (or on html5-powered devices) without making compromises.
... webgl lets you create high-
performance, hardware-accelerated 3d (and 2d) graphics from web content.
2D collision detection - Game development
the complexity of an algorithm like this means we will need to consider
performance optimization, covered in the next section.
... implementing sat is out of scope for this page so see the recommended tutorials below: separating axis theorem (sat) explanation collision detection and response collision detection using the separating axis theorem sat (separating axis theorem) separating axis theorem collision
performance while some of these algorithms for collision detection are simple enough to calculate, it can be a waste of cycles to test *every* entity with every other entity.
3D games on the Web - Game development
the main browsers are all supporting webgl and all you need to focus on is optimizing the
performance on the devices you use.
...using a framework for 3d games also helps optimize the
performance as a lot is taken care of by the tools you use, so you can focus on building the game itself.
Techniques for game development - Game development
using async scripts for asm.js especially when creating medium to large-sized games, async scripts are an essential technique to take advantage of, so that your game's javascript can be compiled off the main thread and be cached for future game running, resulting in a significant
performance improvement for your users.
... optimizing startup
performance how to make sure your game starts up quickly, smoothly, and without appearing to lock up the user's browser or device.
RAIL - MDN Web Docs Glossary: Definitions of Web-related terms
rail, an acronym for response, animation, idle, and load, is a
performance model originated by the google chrome team in 2015, focused on user experience and
performance within the browser.
... the
performance mantra of rail is "focus on the user; the end goal isn't to make your site perform fast on any specific device, it's to make users happy." there are 4 stages of interaction: page load, idle, response to input, and scrolling and animation.
Time to interactive - MDN Web Docs Glossary: Definitions of Web-related terms
time to interactive (tti) is a non-standardized web
performance 'progress' metric defined as the point in time when the last long task finished and was followed by 5 seconds of network and main thread inactivity.
...although available in some
performance monitoring tools, tti is not a part of any official web specification at the time of writing.
beacon - MDN Web Docs Glossary: Definitions of Web-related terms
beacons are often included within third party scripts for collecting user data,
performance metrics and error reporting.
... there is a w3c draft beacon specification to standardize the beacon as an interface to asynchronously transfer http data from user agent to a web server prior to page load without negative
performance impact.
MDN Web Docs Glossary: Definitions of Web-related terms
object object reference oop opengl openssl opera browser operand operator origin ota owasp p p2p pac packet page load time page prediction parameter parent object parse parser pdf perceived
performance percent-encoding php pixel placeholder names plaintext png polyfill polymorphism pop3 port prefetch preflight request prerender presto primitive privileged privileged code progressive enhancement progressive web apps pr...
...udp (user datagram protocol) ui undefined unicode uri url urn usenet user agent utf-8 ux v validator value variable vendor prefix viewport visual viewport voip w w3c wai wcag web
performance web server web standards webassembly webdav webextensions webgl webidl webkit webm webp webrtc websockets webvtt whatwg whitespace world wide web wrapper x xforms xhr (xmlhttprequest) xhtml xinc...
Common questions - Learn web development
what tools are available to debug and improve website
performance?
... this set of articles shows you how to use the developer tools in firefox to debug and improve
performance of your website, using the tools to check memory usage, the javascript call tree, the number of dom nodes being rendered, and more.
HTML forms in legacy browsers - Learn web development
pay attention to
performance even though scripts like modernizr are very aware of
performance, loading a 200 kilobyte polyfill can affect the
performance of your application.
...
performance is a subject on its own, but legacy browsers are very sensitive to it: basically, they are slow and the more polyfills they need, the more javascript they have to process.
Using data attributes - Learn web development
the main issues to consider are internet explorer support and
performance.
...also, the
performance of reading data-attributes compared to storing this data in a regular js object is poor.
What is JavaScript? - Learn web development
from a technical standpoint, most modern javascript interpreters actually use a technique called just-in-time compiling to improve
performance; the javascript source code gets compiled into a faster, binary format while the script is being used, so that it can be run as quickly as possible.
...on larger sites with lots of javascript, this can cause a major
performance issue, slowing down your site.
Getting started with Svelte - Learn web development
the outcome of this approach is not only smaller application bundles and better
performance, but also a developer experience that is more approachable for people that have limited experience of the modern tooling ecosystem.
... highly interactive pages or complex visualizations: if you are building data-visualizations that need to display a large number of dom elements, the
performance gains that come from a framework with no runtime overhead will ensure that user interactions are snappy and responsive.
Strategies for carrying out testing - Learn web development
a couple of lower-spec mobile devices, so you can test
performance of features like animations on less powerful processors.
... note: another useful lo-fi option, if you have the hardware available, is to test your sites on low-end phones/other devices — as sites get larger and feature more effects, there is a higher chance of the site slowing down, so you need to start giving
performance more consideration.
Debugging a hang on OS X (Archived)
creating the sample on mac os x 10.5 (xcode < 4.2) when the application is still hung, open up spin control.app (it’s in your <tt>/developer/applications/
performance tools/</tt> folder; if it is missing, install the latest computer hardware understanding development (chud) tools from apple).
... creating the sample on mac os x 10.4 when the application is still hung, open up sampler.app (it’s in your <tt>/developer/applications/
performance tools/</tt> folder; if it is missing, install the latest computer hardware understanding development (chud) tools from apple.).
Debugging
reporting a
performance problem ...using the gecko profiler extension.
... related topics
performance and profiling troubleshooting
performance problems.
SVG Guidelines
performance while svg provides a lot of flexibility in terms of scaling, themability, etc.
...you can avoid this by doing basic algebra, for example: <g transform="translate(-62, -310)"><shape transform="translate(60, 308)"/></g> can be cut down to: <shape transform="translate(-2,-2)"/> because: -62+60 = -310+308 = -2
performance tips these rules are optional, but they help speeding up the svg.
Developer guide
performance performance guides and utilities to help you make your code perform well (and to play nicely with others).
... perfherder perfherder is used to aggregate the results of automated
performance tests against the tree.
Index
168
performance best practices for firefox front-end engineers best practices, developing firefox, developing mozilla, firefox, front-end, mozilla,
performance this guide will help firefox developers working on front-end code produce code which is as performant as possible—not just on its own, but in terms of its impact on other parts of firefox.
... 172 security best practices for firefox front-end engineers best practices, developing firefox, developing mozilla, firefox, front-end, mozilla,
performance this article will help firefox developers understand the security controls in place and avoid common pitfalls when developing front-end code for firefox.
Cross Process Object Wrappers
performance although the wrapper looks just like an object completely contained in the chrome script scope, it's really just a reference to an object in the content process.
...the content process can respond immediately to the cpow call: there is still a
performance cost to the cpow in this situation, because the cpow call is an ipc call instead of a simple property access in the same process.
How to Report a Hung Firefox
(if you're experiencing high cpu usage and firefox eventually recovers from a hang, you should try the instructions at reporting a
performance problem instead.) is the rest of your system busy (high cpu or memory usage, or high disk activity)?
...if you suspect a hang (as opposed to slow
performance), wait one minute on an idle system before getting the stack trace.
Mozilla Development Strategies
it's better to fix one data loss bug, crasher, or
performance bug that really affects the user than edge case bugs that are rarely seen or minor bugs.
...but those might be difficult bugs (hard to reproduce crashers, big rewrites for
performance, etc.) which can take several days or weeks to complete, plus the time for reviews.
Activity Monitor, Battery Status Menu and top
task_power_info::task_interrupt_wakeups obtained from the task_info function.) requires high perf gpu: many macs have two gpus: a low-power, low-
performance integrated gpu, and a high-power, high-
performance external gpu.
... using the high-
performance gpu can greatly increase power consumption, and should be avoided whenever possible.
Refcount tracing and balancing
you must also set one or two additional environment variables, xpcom_mem_log_classes and xpcom_mem_log_objects, to reduce the set of objects being logged, in order to improve
performance to something vaguely tolerable.
... post-processing step 2: filtering the log once you've picked an object that leaked, you can use tools/rb/filter-log.pl to filter the log file to drop the call stack for other objects; this process reduces the size of the log file and also improves the
performance.
nglayout.debug.disable_xul_cache
to improve
performance, mozilla caches chrome xul documents the first time they load for faster loading later.
...false: cache xul documents in memory and save the cache to disk on exit to improve
performance.
Atomic Operations
since not all operating environments provide access to such functions, their
performance may vary considerably.
...however, the implementation may vary greatly, and hence the
performance.
NSS_3.12_release_notes.html
bug 217538: softoken databases cannot be shared between multiple processes bug 294531: design new interfaces for certificate path building and verification for libpkix bug 326482: nss ecc
performance problems (intel) bug 391296: need an update helper for shared databases bug 395090: remove duplication of pkcs7 code from pkix_pl_httpcertstore.c bug 401026: need to provide a way to modify and create new pkcs #11 objects.
...ibraries bug 286642: util should be in a shared library bug 287052: function to get crl entry reason code has incorrect prototype and implementation bug 299308: need additional apis in the crl cache for libpkix bug 335039: nssckfwcryptooperation_updatecombo is not declared bug 340917: crlutil should init nss read-only for some options bug 350948: freebl macro change can give 1% improvement in rsa
performance on amd64 bug 352439: reference leaks in modutil bug 369144: certutil needs option to generate subjectkeyid extension bug 391771: pk11_config_name and pk11_config_strings leaked on shutdown bug 401194: crash in lg_findobjects on win64 bug 405652: in the tls clienthello message the gmt_unix_time is incorrect bug 424917:
performance regression with studio 12 compiler bug 391770: ocsp_global.monitor ...
NSS 3.14 release notes
err.h) new for pkcs #11 pkcs #11 mechanisms: ckm_aes_cts ckm_aes_ctr ckm_aes_gcm (see warnings against using c_encryptupdate/c_decryptupdate above) ckm_sha224_key_derivation ckm_sha256_key_derivation ckm_sha384_key_derivation ckm_sha512_key_derivation changes in nss 3.14 bug 333601 -
performance enhancements for intel macs when building for intel macs, nss will now take advantage of optimized assembly code for common operations.
... these changes have the observed effect of doubling rsa
performance.
NSS 3.46 release notes
new in nss 3.46 this release contains no significant new functionality, but concentrates on providing improved
performance, stability, and security.
... of particular note are significant improvements to aes-gcm
performance on arm.
nss tech note1
this decoder was written when
performance issues were discovered with the classic decoder.
...quickder was written to be as compatible as possible with the classic decoder, in order to ease migration to it in areas of critical
performance bottlenecks.
nss tech note2
collect
performance data.
...a summary of
performance data is dumped during nss shutdown.
NSS tools : certutil
the last versions of these legacy databases are: * cert8.db for certificates * key3.db for keys * secmod.db for pkcs #11 module information berkeleydb has
performance limitations, though, which prevent it from being easily used by multiple applications simultaneously.
...these new databases provide more accessibility and
performance: * cert9.db for certificates * key4.db for keys * pkcs11.txt, which is listing of all of the pkcs #11 modules contained in a new subdirectory in the security databases directory because the sqlite databases are designed to be shared, these are the shared database type.
NSS tools : modutil
the last versions of these legacy databases are: o cert8.db for certificates o key3.db for keys o secmod.db for pkcs #11 module information berkeleydb has
performance limitations, though, which prevent it from being easily used by multiple applications simultaneously.
...these new databases provide more accessibility and
performance: o cert9.db for certificates o key4.db for keys o pkcs11.txt, which is listing of all of the pkcs #11 modules contained in a new subdirectory in the security databases directory because the sqlite databases are designed to be shared, these are the shared database type.
NSS tools : pk12util
the last versions of these legacy databases are: o cert8.db for certificates o key3.db for keys o secmod.db for pkcs #11 module information berkeleydb has
performance limitations, though, which prevent it from being easily used by multiple applications simultaneously.
...these new databases provide more accessibility and
performance: o cert9.db for certificates o key4.db for keys o pkcs11.txt, which is listing of all of the pkcs #11 modules contained in a new subdirectory in the security databases directory because the sqlite databases are designed to be shared, these are the shared database type.
certutil
the last versions of these legacy databases are: o cert8.db for certificates o key3.db for keys o secmod.db for pkcs #11 module information berkeleydb has
performance limitations, though, which prevent it from being easily used by multiple applications simultaneously.
...these new databases provide more accessibility and
performance: o cert9.db for certificates o key4.db for keys o pkcs11.txt, which is listing of all of the pkcs #11 modules contained in a new subdirectory in the security databases directory because the sqlite databases are designed to be shared, these are the shared database type.
NSS tools : modutil
the last versions of these legacy databases are: o cert8.db for certificates o key3.db for keys o secmod.db for pkcs #11 module information berkeleydb has
performance limitations, though, which prevent it from being easily used by multiple applications simultaneously.
...these new databases provide more accessibility and
performance: o cert9.db for certificates o key4.db for keys o pkcs11.txt, which is listing of all of the pkcs #11 modules contained in a new subdirectory in the security databases directory because the sqlite databases are designed to be shared, these are the shared database type.
NSS tools : pk12util
the last versions of these legacy databases are: o cert8.db for certificates o key3.db for keys o secmod.db for pkcs #11 module information berkeleydb has
performance limitations, though, which prevent it from being easily used by multiple applications simultaneously.
...these new databases provide more accessibility and
performance: o cert9.db for certificates o key4.db for keys o pkcs11.txt, which is listing of all of the pkcs #11 modules contained in a new subdirectory in the security databases directory because the sqlite databases are designed to be shared, these are the shared database type.
NSS tools : signver
the last versions of these legacy databases are: o cert8.db for certificates o key3.db for keys o secmod.db for pkcs #11 module information berkeleydb has
performance limitations, though, which prevent it from being easily used by multiple applications simultaneously.
...these new databases provide more accessibility and
performance: o cert9.db for certificates o key4.db for keys o pkcs11.txt, which is listing of all of the pkcs #11 modules contained in a new subdirectory in the security databases directory because the sqlite databases are designed to be shared, these are the shared database type.
Network Security Services
nss
performance reports archived version.
... links to
performance reports for nss 3.2 and later releases.
Rhino documentation
performance hints some tips on writing faster javascript code.
... scopes and contexts describes how to use scopes and contexts for the best
performance and flexibility, with an eye toward multithreaded environments.
Scripting Java
although this has the benefit of selecting a method that may be a better match for each call, it does have an impact on
performance since more work is done at each call.
... in practice this
performance cost hasn't been noticeable in real applications.
SpiderMonkey Build Documentation
non-developer (optimized) build use these steps if you want to install spidermonkey for production use or run
performance benchmarks.
... developer (debug) build for developing and debugging spidermonkey itself, it is best to have both a debug build (for everyday debugging) and an optimized build (for
performance testing), in separate build directories.
Hacking Tips
js> datenow() - datenow() -0.0009765625 benchmarking with sub-milliseconds (browser) in a simillar way as datenow() in the js shell, you can use
performance.now() in the javascript code of a page.
... $ cgset -r cpuset.mems=0 /benchmarks $ cgset -r cpuset.mems=0 /benchmarks/mask $ cgset -r cpuset.mems=0 /benchmarks/negate-mask then we limit the
performance of the cpu, as a proportion such as the result approximately correspond to what you might have if you were running on a phone.
JSAPI User Guide
second, the application should take steps to reduce the
performance impact of garbage collection.
... gc
performance overly frequent garbage collection can be a
performance issue.
SpiderMonkey 1.8.5
the new garbage collector can perform per-container garbage collection, which can be a significant
performance improvement for certain workloads.
...we have chosen to concentrate on
performance and correctness as primary concerns instead.
SpiderMonkey 1.8.7
the new garbage collector can perform per-container garbage collection, which can be a significant
performance improvement for certain workloads.
...we have chosen to concentrate on
performance and correctness as primary concerns instead.
SpiderMonkey 1.8.8
it continues to improve
performance over previous spidermonkey releases, with ongoing jit compilation work and with the introduction of type inference to enable faster jitted code.
...we have chosen to concentrate on
performance and correctness as primary concerns instead.
SpiderMonkey 17
it continues to improve
performance over previous spidermonkey releases, with ongoing jit compilation work and with the introduction of type inference to enable faster jitted code.
...we have chosen to concentrate on
performance and correctness as primary concerns instead.
SpiderMonkey 24
it continues to improve
performance over previous spidermonkey releases, with a significantly improved garbage collector, a new jit compilation mode, and other features.
...we have chosen to concentrate on
performance and correctness as primary concerns instead.
SpiderMonkey 31
it continues to improve
performance over previous spidermonkey releases, with a significantly improved garbage collector and other features.
...we have chosen to concentrate on
performance and correctness as primary concerns instead.
SpiderMonkey 38
it continues to improve
performance over previous spidermonkey releases, with xxx blah blah blah.
...we have chosen to concentrate on
performance and correctness as primary concerns instead.
WebReplayRoadmap
while different jits optimize code in different ways, for peak
performance they all require code to operate on values of consistent types: primitive types, including int32 vs.
... if js
performance is a bottleneck, recordings can be analyzed for code regions that are both very hot and have inconsistent types.
An Overview of XPCOM
performance when code is modularized, modules that are not necessary right away can be "lazy loaded", or not loaded at all, which can improve the
performance of your application.
...but enabling exceptions and rtti may not be an option because of
performance overhead and compatibility on many platforms, so xpcom does things differently.
Cached compose window FAQ
the upside is that is has been a major
performance win why did you do this?
... any new window
performance problems that mozilla has are especially painful in mail compose, as we need to create a new compose window on every new mail message or reply.
Plugin Roadmap for Firefox - Plugins
plugins are a security and
performance problem for firefox users.
... in order to improve security and
performance, mozilla will maintain a list of sites which cannot use any plugins.
Plugins
important: plugins are a legacy technology that are a security and
performance problem for firefox (and other browser) users.
... plugin blocking by domain in order to improve security and
performance for firefox users, firefox maintains a list of sites that are not able to use plugins.
Throttling - Firefox Developer Tools
the characteristics emulated are: download speed upload speed minimum latency the table below lists the numbers associated with each network type, but please do not rely on this feature for exact
performance measurements; it's intended to give an approximate idea of the user experience in different conditions.
...50 kbps 250 kbps 100 good 3g 1.5 mbps 750 kbps 40 regular 4g/lte 4 mbps 3 mbps 20 dsl 2 mbps 1 mbps 5 wi-fi 30 mbps 15 mbps 2 network monitor features the following articles cover different aspects of using the network monitor: toolbar network request list network request details network traffic recording
performance analysis ...
Network monitor toolbar - Firefox Developer Tools
a second toolbar area at the bottom of the network monitor provides: an icon to launch
performance analysis.
... network monitor features the following articles cover different aspects of using the network monitor: network request list network request details network traffic recording
performance analysis throttling ...
Network request details - Firefox Developer Tools
timings tab the timings tab provides information about how long each stage of a network request took, with a more detailed, annotated, view of the timeline bar, so it is easy to locate
performance bottlenecks.
... network monitor features the following articles cover different aspects of using the network monitor: toolbar network request list network traffic recording
performance analysis throttling ...
Network request list - Firefox Developer Tools
start
performance analysis use as fetch in console submits the request as a call to the fetch() method in the console.
... network monitor features the following articles cover different aspects of using the network monitor: toolbar network request details network traffic recording
performance analysis throttling ...
Intensive JavaScript - Firefox Developer Tools
you can use the frame rate and waterfall tools to see when javascript is causing
performance problems, and to single out the particular functions that need attention.
... leaving the radio button set to "use blocking call in main thread", make a recording: press the "start animations" button start recording a
performance profile press "do pointless computations!" two or three times stop recording the profile exactly what you see will vary from one machine to another, but it will be something like this: the top half of this is the waterfall overview.
UI Tour - Firefox Developer Tools
the
performance tool's ui consists of 4 main pieces: toolbar recordings pane recording overview details pane, which may contain any one of: waterfall call tree flame chart toolbar the toolbar contains buttons to: start and stop a recording import a recording you previously saved clear the recordings pane.
... the allocations view only appears if you checked "record allocations" in the
performance tool settings, before recording a profile: to learn much more about the allocations view, see the separate allocations page.
Beacon API - Web APIs
there is nothing the next page can do to avoid this perception of poor page load
performance.
... not only do these techniques represent poor coding patterns, some of them are unreliable and result in the perception of poor page load
performance for the next navigation.
Optimizing canvas - Web APIs
however, when websites and apps push the canvas api to its limits,
performance begins to suffer.
...
performance tips the following is a collection of tips to improve canvas
performance.
console - Web APIs
console.profile() starts the browser's built-in profiler (for example, the firefox
performance tool).
...you can see the resulting profile in the browser's
performance tool (for example, the firefox
performance tool).
Element.classList - Web APIs
however, such actions would not work in ie6-ie8 and, in ie9, slow the
performance of the entire webpage to a snail's crawl, making these modifications completely impractical for this polyfill.
... a minor note is that in ie6-7, this polyfill uses the window[" ucl"] property on the window object for communicating with the css expressions, the x-uclp css property on all elements, and the element[" ucl"] property on all elements to allow garbage collection and boost
performance.
Introduction to the File and Directory Entries API - Web APIs
it can improve
performance by letting an app pre-fetch assets in the background and cache locally.
... audio or photo editor with offline access or local cache (great for
performance and speed) the app can write to files in place (for example, overwriting just the id3/exif tags and not the entire file).
HTMLCanvasElement.mozOpaque - Web APIs
if the canvas knows there's no translucency, painting
performance can be optimized.
...for example, you could conditionally set it to true if mimetype == 'image/jpeg', or similar, to gain
performance in your application when translucency is not needed.
HTMLVideoElement.msIsLayoutOptimalForPlayback - Web APIs
syntax htmlvideoelement.msislayoutoptimalforplayback: domstring; value boolean value set to true indicates that video is being rendered optimally (better
performance and using less battery power).
... if false, improvements can be made to optimize
performance.
Using IndexedDB - Web APIs
note: as of firefox 40, indexeddb transactions have relaxed durability guarantees to increase
performance (see bug 1112702.) previously in a readwrite transaction idbtransaction.oncomplete was fired only when all data was guaranteed to have been flushed to disk.
...the following code does precisely the same thing as above: objectstore.getall().onsuccess = function(event) { console.log("got all customers: " + event.target.result); }; there is a
performance cost associated with looking at the value property of a cursor, because the object is created lazily.
LargestContentfulPaint - Web APIs
examples the following example shows how to create a
performanceobserver that listens for largest-contentful-paint entries and logs the lcp value to the console.
...// https://bugs.webkit.org/show_bug.cgi?id=209216 try { let lcp; const po = new
performanceobserver((entrylist) => { const entries = entrylist.getentries(); const lastentry = entries[entries.length - 1]; // update `lcp` to the latest value, using `rendertime` if it's available, // otherwise using `loadtime`.
Long Tasks API - Web APIs
usage var observer = new
performanceobserver(function(list) { var perfentries = list.getentries(); for (var i = 0; i < perfentries.length; i++) { // process long task notifications: // report back for analytics and monitoring // ...
... interfaces
performancelongtasktiming reports instances of long tasks.
Media Capabilities API - Web APIs
examples detect audio file support and expected
performance this example defines a audio configuration then checks to see if the user agent supports decoding that media configuration, and whether it will perform well in terms of smoothness and power efficiency.
... the media capabilities api provide more powerful features than say mediarecorder.istypesupported() or htmlmediaelement.canplaytype(), which only address general browser support, not
performance.
RTCConfiguration.bundlePolicy - Web APIs
the goal of bundling is to optimize
performance by reducing the overhead of having multiple transports in play.
... the fewer rtp transports or bundles of rtp streams you have, the better the network
performance will be.
Resize Observer API - Web APIs
such a solution tends to only work for limited use cases, be bad for
performance (continually calling the above methods would result in a big
performance hit), and often won't work when the browser window size is not changed.
... usage is simple, and pretty much the same as other observers, such as
performance observer or intersection observer — you create a new resizeobserver object using the resizeobserver() constructor, then use resizeobserver.observe() to make it look for changes to a specific element's size.
Introduction to the Real-time Transport Protocol (RTP) - Web APIs
those conditions may be affected by everything from the underlying layers of the network stack to the physical network connection, the intervening networks, the
performance of the remote endpoint, noise levels, traffic levels, and so forth.
... this means rtp can be — but is not required to be — used atop udp for its
performance as well as its multiplexing and checksum features.
WebXR Device API - Web APIs
using webgl to render the scene gains substantial
performance benefits due to graphics acceleration.
...
performance and security webxr
performance guide recommendations and tips to help you optimize the
performance of your webxr application.
Background audio processing using AudioWorklet - Web APIs
it's worth noting that because audio processing can often involve substantial computation, your processor may benefit greatly from being built using webassembly, which brings near-native or fully native
performance to web apps.
...however, once this chrome issue is fixed, you will want to change this behavior if possible as it may have a slight negative impact on
performance.
Web Audio API - Web APIs
because the code runs in the main thread, they have bad
performance.
...as long as you consider security,
performance, and accessibility, you can adapt to your own style.
Functions and classes available to Web Workers - Web APIs
performance the
performance interface represents timing-related
performance information for the given page.
... 34.0 (34.0) no support 33.0 no support
performanceentry,
performancemeasure,
performancemark,
performanceobserver,
performanceresourcetiming enables retrieval and analysis of detailed data regarding various aspects of an application's network
performance.
Window.requestAnimationFrame() - Web APIs
requestanimationframe() calls are paused in most browsers when running in background tabs or hidden <iframe>s in order to improve
performance and battery life.
...the callback function is passed one single argument, a domhighrestimestamp similar to the one returned by
performance.now(), indicating the point in time when requestanimationframe() starts to execute callback functions.
Window - Web APIs
window.
performance read only returns a
performance object, which includes the timing and navigation attributes, each of which is an object providing
performance-related data.
...this can be used to compute rendering
performance.
WorkerGlobalScope - Web APIs
non-standard properties workerglobalscope.
performance read only returns the
performance associated with the worker.
... it is a regular
performance object, except that only a subset of its property and methods are available to workers.
Worklet - Web APIs
with worklets, you can run javascript and webassembly code to do graphics rendering or audio processing where high
performance is required.
... web audio render thread web audio api animationworklet for creating scroll-linked and other high
performance procedural animations.
Synchronous and asynchronous requests - Web APIs
in general, however, asynchronous requests should be preferred to synchronous requests for
performance reasons.
...:( client.setrequestheader("content-type", "text/plain;charset=utf-8"); client.send(analyticsdata); } using the sendbeacon() method, the data will be transmitted asynchronously to the web server when the user agent has had an opportunity to do so, without delaying the unload or affecting the
performance of the next navigation.
msWriteProfilerMark - Web APIs
notes mswriteprofilermark enables you to inject dom based
performance markers in addition to existing javascript api to learn exactly when parts of the page are being rendered, building a waterfall view for every one of our impressions showing latency per object, which can be useful for more accurately debugging real users perf issues.
... this method is useful to profile real website
performance by using the operating system metrics as a baseline.
Web APIs
ch apifile system api frame timing apifullscreen apiggamepad api geolocation apihhtml drag and drop apihigh resolution timehistory apiiimage capture apiindexeddbintersection observer apillong tasks api mmedia capabilities api media capture and streamsmedia session apimedia source extensions mediastream recordingnnavigation timingnetwork information api ppage visibility apipayment request api
performance api
performance timeline apipermissions apipointer eventspointer lock apiproximity events push api rresize observer apiresource timing apisserver sent eventsservice workers apistoragestorage access apistreams ttouch eventsuurl apivvibration apivisual viewport wweb animationsweb audio apiweb authentication apiweb crypto apiweb notificationsweb storage apiweb workers apiwebglwebrtcwebvttwebxr de...
...creencanvas orientationsensor oscillatornode overconstrainederror p pagetransitionevent paintworklet pannernode parentnode passwordcredential path2d payererrors paymentaddress paymentcurrencyamount paymentdetailsbase paymentdetailsupdate paymentitem paymentmethodchangeevent paymentrequest paymentrequestevent paymentrequestupdateevent paymentresponse paymentvalidationerrors pbkdf2params
performance performanceentry
performanceeventtiming
performanceframetiming
performancelongtasktiming
performancemark
performancemeasure
performancenavigation
performancenavigationtiming
performanceobserver
performanceobserverentrylist
performancepainttiming
performanceresourcetiming
performanceservertiming
performancetiming periodicwave permissionstatus permissions photocapabilities plugin pluginar...
Using CSS animations - CSS: Cascading Style Sheets
the rendering engine can use frame-skipping and other techniques to keep the
performance as smooth as possible.
... letting the browser control the animation sequence lets the browser optimize
performance and efficiency by, for example, reducing the update frequency of animations running in tabs that aren't currently visible.
filter - CSS: Cascading Style Sheets
this function is similar to the more established box-shadow property; the difference is that with filters, some browsers provide hardware acceleration for better
performance.
...this function is similar to the more established opacity property; the difference is that with filters, some browsers provide hardware acceleration for better
performance.
HTML5 Parser - Developer guides
performance improvement with speculative parsing unrelated to the requirements of html5 specification, the gecko 2 parser uses speculative parsing, in which it continues parsing a document while scripts are being downloaded and executed.
... this results in improved
performance compared to older parsers, because most of the time, gecko can complete these tasks in parallel.
HTML attribute: rel - HTML: Hypertext Markup Language
useful for resources the user will likely need, it helps reduce latency and thereby improves
performance when the user does access the resources as the browser preemptively performed dns resolution for the origin of the specified resource.
... modulepreload useful for improved
performance, and relevant to the <link> anywhere in the document, setting rel="modulepreload" tells the browser to preemptively fetch the script (and dependencies) and store it in the document's module map for later evaluation.
Preloading content with rel="preload" - HTML: Hypertext Markup Language
this ensures they are available earlier and are less likely to block the page's render, improving
performance.
... there are a number of script-based resource loaders out there, but they don't have any power over the browser's fetch prioritization queue, and are subject to much the same
performance problems.
Content negotiation - HTTP
compressing http messages is one of the most important ways to improve the
performance of a web site, it shrinks the size of the data transmitted and makes better use of the available bandwidth; browsers always send this header and the server should be configured to abide to it and to use compression.
...this is not too problematic with few headers, but with the eventual multiplications of them, the message size would lead to a decrease in
performance.
Index - HTTP
99 server-timing http,
performance, reference, header the server-timing header communicates one or more metrics and descriptions for a given request-response cycle.
...database read/write, cpu time, file system access, etc.) in the developer tools in the user's browser or in the
performanceservertiming interface.
Server-Timing - HTTP
database read/write, cpu time, file system access, etc.) in the developer tools in the user's browser or in the
performanceservertiming interface.
...
performanceservertiming interface in addition to having server-timing header metrics appear in the developer tools of the browser, the
performanceservertiming interface enables tools to automatically collect and process metrics from javascript.
HTTP Messages - HTTP
in http/2, the once human-readable message is now divided up into http frames, providing optimization and
performance improvements.
... http/2 frames http/1.x messages have a few drawbacks for
performance: headers, unlike bodies, are uncompressed.
An overview of HTTP - HTTP
due to the layered structure of the web stack, most of these operate at the transport, network or physical levels, becoming transparent at the http layer and potentially making a significant impact on
performance.
... though http/2 adds some complexity, by embedding http messages in frames to improve
performance, the basic structure of messages has stayed the same since http/1.0.
JavaScript data types and data structures - JavaScript
however, since objects cannot be compared (in the sense of < "less than", for instance), look-up
performance would necessarily be linear.
... native implementations of them (including weakmaps) can have look-up
performance that is approximately logarithmic to constant time.
Function.prototype.bind() - JavaScript
polyfill because older browsers are generally also slower browsers, it is far more critical than most people recognize to create
performance polyfills to make the browsing experience in outdated browsers slightly less horrible.
... if it's absolutely necessary and
performance is not a concern, a far slower (but more specification-compliant solution) can be found at https://github.com/raynos/function-bind.
with - JavaScript
performance pro & contra pro: the with statement can help reduce file size by reducing the need to repeat a lengthy object reference without
performance penalty.
...where
performance is important, 'with' should only be used to encompass code blocks that access members of the specified object.
Strict mode - JavaScript
certain language functions are so pervasive that performing runtime checks has a considerable
performance cost.
...(use call, apply, or bind to specify a particular this.) not only is automatic boxing a
performance cost, but exposing the global object in browsers is a security hazard because the global object provides access to functionality that "secure" javascript environments must restrict.
Media container formats (file types) - Web media technologies
however, this format is still used for slower networks and for lower-
performance phones.
...if you're going to be manipulating the media data, using an uncompressed format can improve
performance, while using a lossless compressed format at least prevent the accumulation of noise as compression artifacts are multiplied with each re-compression that occurs.
Guide to streaming audio and video - Web media technologies
in this guide, we'll examine the techniques used to stream audio and/or video media on the web, and how you can optimize your code, your media, your server, and the options you use while performing the streaming to bring out the best quality and
performance possible.
... <<<...xxxxxx...>>> protocols in addition to the configuration of the server and the streaming code, there are sometimes special protocols which can be used to optimize
performance.
Index - WebAssembly
found 12 pages: # page tags and summary 1 webassembly landing, webassembly, wasm webassembly is a new type of code that can be run in modern web browsers — it is a low-level assembly-like language with a compact binary format that runs with near-native
performance and provides languages such as c/c++ with a compilation target so that they can run on the web.
... 2 caching compiled webassembly modules caching, indexeddb, javascript, module, webassembly, compile, wasm caching is useful for improving the
performance of an app — we can store compiled webassembly modules on the client so they don't have to be downloaded and compiled every time.
Understanding WebAssembly text format - WebAssembly
note: this is potentially overkill if you are a web developer who just wants to load a wasm module into a page and use it in your code (see using the webassembly javascript api), but it is more useful if for example, you want to write wasm modules to optimize the
performance of your javascript library, or build your own webassembly compiler.
...this allows very fast communication between workers, and significant
performance gains in web applications.
WebAssembly
webassembly is a new type of code that can be run in modern web browsers — it is a low-level assembly-like language with a compact binary format that runs with near-native
performance and provides languages such as c/c++, c# and rust with a compilation target so that they can run on the web.
...this allows you to take advantage of webassembly's
performance and power and javascript's expressiveness and flexibility in the same apps, even if you don't know how to write webassembly code.
StringView - Archive of obsolete content
performance note: each invocation of stringview.makeindex() runs a cycle for all characters contained in the stringview object between startfrom and startfrom + characterslength.
XUL School Tutorial - Archive of obsolete content
adding sidebars user notifications and alerts intermediate functionality intercepting page loads connecting to remote content handling preferences local storage advanced topics the box model xpcom objects observer notifications custom xul elements with xbl mozilla documentation roadmap useful mozilla community sites appendices appendix a: add-on
performance appendix b: install and uninstall scripts appendix c: avoiding using eval in add-ons appendix d: loading scripts appendix e: dom building and html insertion appendix f: monitoring dom changes the xul school project was developed by appcoast (formerly glaxstar).
Tinderbox - Archive of obsolete content
the tool enables mozilla.org to be immediately notified of changes to the code that prevent mozilla from compiling and running (or compromise
performance and footprint) so they can get someone to fix the problem or reverse the changes.
DTrace - Archive of obsolete content
dtrace is sun microsystem's dynamic tracing framework that allows developers to instrument a program with probes that have little to no effect on
performance when not in use and very little when active.
Table Cellmap - Archive of obsolete content
the following routines seem to be hot spots
performance wise: nscellmap::colhasspanningcells nscellmap::rowhasspanningcells nscellmap::rowisspannedinto users of nscellmap::getdataat outside nscellmap.cpp the border collapse code relies on the cellmap.
URIs and URLs - Archive of obsolete content
together these segments form the url spec with the following syntax: scheme://username:password@host:port/directory/filebasename.fileextension;param?query#ref for
performance reasons the complete spec is stored in escaped form in the nsstandardurl object with pointers (position and length) to each basic segment and for the more global segments like path and prehost for example.
Creating XPI Installer Modules - Archive of obsolete content
though the chrome directory still includes subdirectories of uncompressed files by default, a new way to aggregate and distribute the files has improved
performance, made the ui components more portable and easier to install, and made the installation process a much easier one.
XUL Events - Archive of obsolete content
if you capture this event at the document level, you can be notified of document changes warning: it should be noted that the addition of any mutation event listeners to a document degrades the
performance of subsequent dom operations in that document, and that removing the listeners later does not mitigate or reverse the effect.
Index - Archive of obsolete content
this allows for better
performance as the entire content of a complex menu does not need to be created until the user needs to use the menu.
Debugging a XULRunner Application - Archive of obsolete content
/* debugging prefs */ pref("browser.dom.window.dump.enabled", true); pref("javascript.options.showinconsole", true); pref("javascript.options.strict", true); pref("nglayout.debug.disable_xul_cache", true); pref("nglayout.debug.disable_xul_fastload", true); don't forget to change these preferences back to their defaults when you've finished debugging; leaving them as-is can significantly harm
performance and usability.
Mozilla.dev.apps.firefox-2006-09-29 - Archive of obsolete content
summary: mozilla.dev.apps.firefox - september 22-29, 2006 announcements bon echo 20060921 nightly to recieve "major update" offer mike beltnzer announced that 'users running the bon echo 20060921 nightly build will be offered the chance to upgrade to a "new version"' firefox start up
performance boris zbarsky recently performed some profiling of firefox's start up - these are some of the details discussions problem handling dmg files on mac discussion about why sometimes dmg files are not mounted correctly after they are downloaded.
2006-09-29 - Archive of obsolete content
summary: mozilla.dev.apps.firefox - september 22-29, 2006 announcements bon echo 20060921 nightly to recieve "major update" offer mike beltnzer announced that 'users running the bon echo 20060921 nightly build will be offered the chance to upgrade to a "new version"' firefox start up
performance boris zbarsky recently performed some profiling of firefox's start up - these are some of the details discussions problem handling dmg files on mac discussion about why sometimes dmg files are not mounted correctly after they are downloaded.
2006-11-24 - Archive of obsolete content
announcments bon echo status mike beltzner posted a small to-do list with regards to bon echo firefox 1.5.0.9/2.0.0.1 jay patel posted an update of bugs for the firefox 1.5.0.9/2.0.0.1 releases discussion non-ascii rendering
performance boris zbarsky made some suggestions on how to improve international font rendering cvs commit access changes a large discussion went on about changes to policies surrounding cvs commit access project drivers and technical oversight mike connor suggested ways to better organize project management, policy making, and technical oversight.
Adobe Flash - Archive of obsolete content
performance and flash as is the case with any plug-in content, flash content has the potential to slow down or even completely stall not just the tab it's running in, but the entire browser and even the entire computer it's being used on.
Syndicating content with RSS - Archive of obsolete content
(other sizes and colors, along with their source files, are available too.) advanced syndication techniques although this advanced technique for syndication is not required, support of this is recommended, especially for web sites and applications with high
performance needs.
Using the W3C DOM - Archive of obsolete content
useful references on changing an element's text using the dom whitespace in the dom by david baron element.innerhtml speed and
performance comparison between innerhtml attribute and dom's nodevalue when modifying the text data of a text node by gérard talbot interactive dom level 2 characterdata interface attributes and methods tests: other ways to modify (replace, delete, manipulate) efficiently text nodes in the dom by gérard talbot <- previous section: using web standards: how next section: developing cross-browser pages ...
Server-Side JavaScript - Archive of obsolete content
today with computing cycles having increased more than 10-fold and mozilla's work on rhino (javascript interpreter in java) and spidermonkey (javascript interpreter in c) and javascript itself, we have very solid foundations for javascript to be extraordinarily useful and applicable on the server-side again -- with
performance in the same range as popular server-side environments like php and ruby on rails.
Implementation Status - Archive of obsolete content
epeat 9.3.4 user interface interaction partial we currently obey the 1.0 rules for repeat, no support for @number 302026; 9.3.5 creating repeating structures via attributes partial does not work for html:tr, html:td, or xf:group elements 340515; 350617; 9.3.6 itemset supported
performance problem with large itemsets 372197; 9.3.7 copy supported 10.
Common causes of memory leaks in extensions - Extensions
components.utils.unload("chrome://myaddon/content/mymodule.jsm"); } note: modules not belonging to your add-on — such as services.jsm — should not be unloaded by your add-on, as this might cause errors and/or
performance regressions and will actually increase the memory usage.
Index - Game development
this results in
performance and memory usage gains — big image files containing entire level maps are not needed, as they are constructed by small images or image fragments multiple times.
Distributed Denial of Service - MDN Web Docs Glossary: Definitions of Web-related terms
the united states computer emergency readiness team (us-cert) defines symptoms of denial-of-service attacks to include: unusually slow network
performance (opening files or accessing websites) unavailability of a particular website inability to access any website dramatic increase in the number of spam emails received—(this type of dos attack is considered an email bomb) disconnection of a wireless or wired internet connection longterm denial of access to the web or any internet services learn more general knowledge denial-of-service a...
Immutable - MDN Web Docs Glossary: Definitions of Web-related terms
an object can be immutable for various reasons, for example: to improve
performance (no planning for the object's future changes) to reduce memory use (make object references instead of cloning the whole object) thread-safety (multiple threads can reference the same object without interfering with one other) learn more general knowledge immutable on wikipedia ...
Accessible multimedia - Learn web development
if the audio you are presenting is something like a face to face meeting or live spoken
performance, it would be acceptable to take notes during the
performance, publish them in full along with the audio, then seek help in cleaning up the notes afterwards.
Practical positioning examples - Learn web development
in addition, so-called "single page apps" are becoming very popular — especially for mobile web uis — because having everything served as a single file cuts down on the number of http requests required to view all the content, thereby improving
performance.
Fetching data from the server - Learn web development
this seemingly small detail has had a huge impact on the
performance and behavior of sites, so in this article, we'll explain the concept and look at technologies that make it possible, such as xmlhttprequest and the fetch api.
Introduction to web APIs - Learn web development
this seemingly small detail has had a huge impact on the
performance and behaviour of sites — if you just need to update a stock listing or list of available new stories, doing it instantly without having to reload the whole entire page from the server can make the site or app feel much more responsive and "snappy".
Arrays - Learn web development
in an animated scene for example, you might have an array of objects representing the background graphics currently displayed, and you might only want 50 displayed at once, for
performance or clutter reasons.
Server-side web frameworks - Learn web development
performance of the framework/programming language: usually "speed" is not the biggest factor in selection because even relatively slow runtimes like python are more than "good enough" for mid-sized sites running on moderate hardware.
Ember resources and troubleshooting - Learn web development
for framework-specific things, there is the ember-inspector add-on, which allows inspection of: routes & controllers components services promises data (i.e: from a remote api — from ember-data, by default) deprecation information render
performance for general javascript debugging, check out our guides on javascript debugging as well as interacting with the browser's other debugging tools.
Deployment and next steps - Learn web development
erser'; const production = !process.env.rollup_watch; export default { input: 'src/main.js', output: { sourcemap: true, format: 'iife', name: 'app', file: 'public/build/bundle.js' }, plugins: [ svelte({ // enable run-time checks when not in production dev: !production, // we'll extract any component css out into // a separate file - better for
performance css: css => { css.write('public/build/bundle.css'); } }), later on in the same file you'll also see how rollup minimizes our scripts in production mode and launches a local server in development mode: // in dev mode, call `npm run start` once // the bundle has been generated !production && serve(), // watch the `public` directory and refresh the //...
Client-side tooling overview - Learn web development
also well-worth looking at is webhint, a configurable, open-source linter for the web that surfaces best practices including approaches to accessibility,
performance, cross-browser compatibility via mdn's browser compatibility data, security, testing for pwas, and more.
Learn web development
web
performance — making websites fast and responsive web
performance is the art of making sure web applications download fast and are responsive to user interaction, regardless of a user's bandwidth, screen size, network, or device capabilities.
omni.ja (formerly omni.jar)
firefox and thunderbird achieve
performance improvements by moving many of their internal parts from being standalone files or sets of jar files into just one jar file called omni.ja; this reduces the amount of i/o needed to load the application.
Mozilla accessibility architecture
performance: by caching the accessible node for each dom node in a hash table, we can hand back accessibles extremely quickly, and avoid recalculating and creating new accessibles every time one is requested for a certain dom node.
Add-ons
this new, high-
performance browser for android has been rebuilt from the ground up using geckoview, mozilla’s mobile browser engine.
Adding a new CSS property
(which set the property is in is given in the specification, which says "inherited: yes" or "inherited: no" in the property's definition.) also note that some of the style structs intentionally contain only properties set/reset by a particular common shorthand property; this improves the effectiveness of some of the
performance and memory optimizations done with the rule tree, and thus we should avoid adding a property not reset by that shorthand to such a struct.
Browser chrome tests
be aware that this is not a solution; you should investigate why your test is taking so long, since it's most likely due to a bad test design or a
performance problem.
Configuring Build Options
this will help catch any errors introduced into the js code, with less of a
performance impact compared to the --enable-debug option.
Eclipse CDT
headers are only parsed once for
performance reasons, eclipse only processes header files that have include guards once, using the compiler options for the first source file it encounters that includes that header (eclipse bug 380511).
Gecko Logging
verbose 5 a message that will be printed a lot, useful for debugging program flow and will probably impact
performance.
Reviewer Checklist
[fennec: when writing tests that use paintedsurface, ensure the paintedsurface is closed when you're done with it.]
performance impact check for main-thread io [fennec: android may warn about this with strictmode].
Experimental features in Firefox
nightly 75 yes developer edition 75 no beta 75 no release 75 no preference name dom.forms.inputmode <link rel="preload"> the <link> element's rel attribute is intended to help provide
performance gains by letting you download resources earlier in the page lifecycle, ensuring that they're available earlier and are less likely to block page rendering.
Message manager
guides message manager overview frame script loading and lifetime communicating with frame scripts
performance best practices frame script environment limitations of frame scripts process scripts api reference nsiframescriptloader nsimessagelistenermanager nsimessagebroadcaster nsimessagesender nsisyncmessagesender nsicontentframemessagemanager nsiprocessscriptloader ...
Firefox and the "about" protocol
cense displays licensing information about:logo firefox logo about:memory provides a way to display memory usage, save it as report and run the gc and cc about:mozilla special page showing a message from "the book of mozilla" about:networking displays networking information about:newtab start page when opening a new tab about:
performance displays memory and
performance information about firefox subprocesses/add-ons/tabs about:plugins displays information about installed plugins about:policies lists out the firefox for enterprise policies about:preferences firefox settings (also available through firefox menu > options) about:privatebrowsing start page when opening a private windo...
Firefox
you can find details about profiles on mozilla's end-user support site.
performance best practices for firefox front-end engineersthis guide will help firefox developers working on front-end code produce code which is as performant as possible—not just on its own, but in terms of its impact on other parts of firefox.
MozBeforePaint
limiting the frame rate avoids wasting work, thereby saving cpu usage and power and improving overall system
performance.
Script security
therefore there's no need for any security checks, there are no wrappers, and there is no
performance overhead for the common case of objects in a single window interacting with each other.
IPDL Tutorial
it is possible to get into trouble with careless uses of synchronous messages; while ipdl can check and/or guarantee that your code does not deadlock, it is easy to cause nasty
performance problems by blocking.
JavaScript code modules
perfmeasurement.jsm provides access to low-level hardware and os
performance measurement tools.
Application Translation with Mercurial
so let's go to c:\mozilla by typing cd /c/mozilla/ create a new directory for the source code: mkdir mozilla-aurora initialize the new directory as new repository: hg init mozilla-aurora go into the new directory: cd mozilla-aurora unpack the source code: hg unbundle /path/to/the/downloaded/mozilla-aurora.hg this can take some time, mostly depending on the
performance of the hard drive.
Creating localizable web applications
good: image file (/img/tignish/firefox/
performance-chart.png): html: (in this case, no gettext was used and the localizers worked on pure html files) <div id="
performance-chart"> <h4>firefox
performance: fast — faster — <em>fastest</em></h4> <p>results of a sunspider test on a windows xp machine</p> <img src="/img/tignish/firefox/
performance-chart.png" alt="firefox 2, firefox 3, firefox 3.5
performance chart" /> <ul> <li>18,14...
Mozilla Style System
however, the second of these rules is the key to many of the
performance and memory-use optimizations in the style system.
Build Metrics
"build metrics" is a catch-all term for
performance measures that are generated by the firefox build system and tracked by perfherder.
BloatView
the more memory in general, the worse the
performance and footprint.
DMD
see
performance/memory_reporting for more details about how memory reporters are written.
JS::PerfMeasurement
the js::perfmeasurement class, found in jsperf.h, lets you take detailed
performance measurements of your code.
Leak-hunting strategies and tips
some places you can do this are: layout engine define debug_tracemalloc_framearena where it is commented out in layout/base/nspresshell.cpp glib set the environment variable g_slice=always-malloc other references
performance tools leak debugging screencasts (dbaron) leakingpages - a list of pages known to leak mdc:
performance - contains documentation for all of our memory profiling and leak detection tools ...
Scroll-linked effects
this article discusses scroll-linked effects, their effect on
performance, related tools, and possible mitigation techniques.
perf
performance counter stats for 'system wide': 51.58 joules power/energy-pkg/ [100.00%] 14.80 joules power/energy-cores/ [100.00%] 9.93 joules power/energy-gpu/ [100.00%] 27.38 joules power/energy-ram/ [100.00%] 5.003049064 seconds time elapsed it's not clear from the output, but the following relationship holds.
Preference reference
the old behavior can be restored by setting the preference mail.tabs.drawintitlebar to false.nglayout.debug.disable xul fastloadthe preference nglayout.debug.disable_xul_fastload controls whether or not xul fastload is used.nglayout.debug.disable_xul_cacheto improve
performance, mozilla caches chrome xul documents the first time they load for faster loading later.
Emscripten
practically any portable c or c++ codebase can be compiled into javascript using emscripten, ranging from high
performance games that need to render graphics, play sounds, and load and process files, through to application frameworks like qt.
Leak And Bloat Tests
code locations the files specific to leak and bloat testing are be stored in: http://mxr.mozilla.org/comm-central/source/mailnews/test/
performance these files consist of: overlays (used to provide the hooks for the javascript): bloat/bloataddroverlay.xul bloat/bloatcomposeoverlay.xul bloat/bloatmainoverlay.xul javascript files (used to drive the tests): bloat/bloataddroverlay.js bloat/bloatcomposeoverlay.js bloat/bloatmainoverlay.js preference settings (used to provide a defined profile, see below): common/mailnewstestprefs.js py...
MailNews automated testing
performance testing mail leak and bloat tests these tests start up thunderbird or seamonkey and record any leaks found, as well as the total memory requirement.
Nonblocking IO In NSPR
the current implementation of <tt>pr_select()</tt> simply calls <tt>pr_poll()</tt>, so it is sure to have worse
performance.
Optimizing Applications For NSPR
the implementation is well suited for high
performance application, such as a server, but clients may find the win-95 version more suited (and adequate) for interactive applications such as are prevalent on today's workstations.
Cached Monitors
this additional flexibility comes at the cost of a small loss in
performance.
I/O Functions
two new functions, pr_transmitfile and pr_acceptread, can exploit the new system calls of some operating systems for higher
performance.
Interval Timing
nspr 2.0 provides interval times that are efficient in terms of
performance and storage requirements.
PRThreadScope
in most cases, this leads to a significant
performance benefit.
An overview of NSS Internals
it was originally developed for telecommunication systems at times where it was critical to minimize data as much as possible (although it still makes sense to use that principle today for good
performance).
NSS 3.24 release notes
these checks have been disabled by default, as they can cause a
performance regression.
NSS 3.28 release notes
note that this detection has a one-off
performance cost, which can be avoided by using the ssl_namedgroupconfig function, to limit supported groups to those that nss provides.
NSS 3.35 release notes
note that debug builds will use a lower count, for better
performance in test environments.
NSS 3.48 release notes
and add test for early key update bug 1597799 - fix a crash in nssckfwobject_getattributesize bug 1591178 - add entrust root certification authority - g4 certificate to nss bug 1590001 - prevent negotiation of versions lower than 1.3 after helloretryrequest bug 1596450 - added a simplified and unified mac implementation for hmac and cmac behind pkcs#11 bug 1522203 - remove an old pentium pro
performance workaround bug 1592557 - fix prng known-answer-test scripts bug 1586176 - encryptupdate should use maxout not block size (cve-2019-11745) bug 1593141 - add `notbefore` or similar "beginning-of-validity-period" parameter to mozilla::pkix::trustdomain::checkrevocation bug 1591363 - fix a pbkdf2 memory leak in nsc_generatekey if key length > max_key_len (256) bug 1592869 - use arm neon for ctr_...
NSS 3.50 release notes
notable changes in nss 3.50 verified primitives from hacl* were updated, bringing
performance improvements for several platforms.
NSS 3.53 release notes
notable changes in nss 3.53 when using the makefiles, nss can be built in parallel, speeding up those builds to more similar
performance as the build.sh/ninja/gyp system.
NSS 3.55 release notes
with this function, a given slot can be queried with a der-encoded certificate, providing
performance and usability improvements over other mechanisms.
Overview of NSS
nss includes a framework to which developers and oems can contribute patches, such as assembler code, to optimize
performance on their platforms.
Rhino history
this produced the best
performance (often beating the c implementation of javascript when run on a jit), but suffered from two faults.
New in Rhino 1.7R4
update license to mpl 2.0 make string concatenation with + fast java class generation updates and fixes faster number to string conversion several regexp fixes regexp
performance improvements es5 compliance fixes improved interpreter
performance improved commonjs module implementation javascript 1.8 generator expressions many parser and ast fixes use javascript 1.7 as default version in rhino shell javaadapter improvements fixes in js to java access include mozilla test suite a list of bugs that were fixed since the previous release.
Rhino optimization
the compilation time is minimized at the expense of runtime
performance.
The JavaScript Runtime
compilation to java bytecodes for improved
performance, rhino may compile javascript scripts to java bytecodes.
Rhino scopes and contexts
simple embeddings of rhino probably won't need any of the information here, but more complicated embeddings can gain
performance and flexibility from the techniques described below.
Creating JavaScript jstest reftests
performance tests or stress tests tests of spidermonkey's comformance to the ecmascript standard a brief history: in 2017, spidermonkey started comsuming test262, a comprehensive tests suite for ecmascript implementations.
GC Rooting Guide
there are some situations when using js::rooted<t> is not possible, or is undesirable for
performance reasons.
Index
505 js_freeop jsapi reference, reference, référence(2), spidermonkey js_freeop is a wrapper for js_free(p) that may delay js_free(p) invocation as a
performance optimization as specified by the given jsfreeop instance.
Garbage collection
gc/statistics.{h,cpp} defines struct statistics, which stores spidermonkey gc
performance counters.
JS::Value
the different representations are visible using the separate int32/double methods but do not affect observable semantics (ignoring
performance).
JSClass.flags
it results in finalization work being offloaded to another thread which improves
performance.
JS_NewContext
in a debug build, large chunk sizes can degrade
performance dramatically.
JS_SetOptions
this enables compile-time scope chain resolution of consts (a
performance optimization).
JS_THREADSAFE
for example: many worker threads need to share a "pool" of reusable contexts, to avoid the
performance cost of constantly creating and destroying contexts.
JS_freeop
description js_freeop is a wrapper for js_free(p) that may delay js_free(p) invocation as a
performance optimization as specified by the given jsfreeop instance.
SpiderMonkey 52
it continues to improve
performance over previous spidermonkey releases.
Running Parsemark
parsemark is a command-line testing utility for measuring parse/emit
performance of the spidermonkey front-end.
Split object
for
performance, access to global properties must be fast.
Web Replay
note that while this could potentially be a big drag on
performance during both replay and recording, many of the hottest atomics (refcounts, gc counters, and so forth) are associated with non-deterministic components and are not recorded.
Animated PNG graphics
frame timings should be independent of the time required for decoding and display of each frame, so that animations will run at the same rate regardless of the
performance of the decoder implementation.
Life After XUL: Building Firefox Interfaces with HTML
problems / solutions: accessibility localization caching for working offline / pre-caching for snappy first run visual
performance / jank security privacy operations tooling build process third-party library use and management ...
Places Expiration
this ensures expiration doesn't lag behind without hitting
performances when there is no need for it.
Querying Places
for this reason, it is best to close a container as soon as you are done with it, since it will give better
performance.
Starting WebLock
but we leave optimizations and real-world
performance for web locking to the reader.
Profiling XPCShell
introduction sometimes, you might want to get a
performance profile of a certain piece of javascript (like an xpcom module), to see which part takes the most time.
NS_InitXPCOM3
this can be a
performance improvement over dynamically loaded xpcom modules.
mozIColorAnalyzer
if imageuri points to an image that has more than 128^2 pixels, this method will fail for
performance reasons before analyzing it.
mozIStorageConnection
warning: performing synchronous io on the main thread can cause serious
performance problems.
mozIStorageService
if cache contention is expected, for instance when operating on a database from multiple threads, using unshared connections may be a
performance win.
nsIAbCard
if cached by the caller and supplied to this function, then
performance will be improved over many calls.
nsIAppStartup
this can be used, for example, when doing
performance testing of the startup process to discount numbers for tests that were interrupted by a user prompt.
nsIBrowserHistory
for
performance reasons this does not return the real number of entries.
getFile
if true, this lets the directory service cache results to improve the
performance of directory lookups.
nsIFileProtocolHandler
note: callers should use geturlspecfromactualfile() if possible, for
performance reasons.
nsIIOService
these are provided as a convenience to the programmer and in some cases to improve
performance by eliminating intermediate data structures and interfaces.
nsINavHistoryResult
when you close the root node the result will stop observing changes, so it is good practice to close the root node when you are done with a result, since that will avoid unwanted
performance hits.
nsINavHistoryResultNode
for hosts, this is the total number of the children under it, rather than the total number of times the host has been accessed (getting that information would require an additional query, so for
performance reasons that information isn't given by default).
nsINavHistoryResultObserver
this is especially useful when updating user interfaces, to avoid flicker or continuous selection changes, which may result in
performance degradation (for example, if updating a view for each update).
nsIObserver
observer.unregister(); "get everything" - note that "*" is an acceptable value (be careful with this, because it observes many events, and can degrade
performance).
nsISessionStartup
it was changed in order to improve
performance, which was suffering due to the need to parse and stringify the data.
nsITelemetry
toolkit/components/telemetry/nsitelemetry.idlscriptable a service to gather
performance data that can be tracked over time to allow generating histograms.
nsITreeView
inherits from: nsisupports last changed in gecko 22 (firefox 22 / thunderbird 22 / seamonkey 2.19) implementing a nsitreeview in lieu of dom methods for tree creation can improve
performance dramatically, and removes the need to make changes to the tree manually when changes to the database occur.
nsIWebBrowser
for optimal
performance, set it to false when appropriate.
Frequently Asked Questions
[see initialization and assignment for more details] you should note, though, that there is a small
performance penalty for this.
XPCOM tasks
see bug 16763 p3 improve the
performance of the registry.
Virtualenv
the mozilla build system mostly uses .pth files instead of the more typically used python setup.py develop or python setup.py install to install python modules in to the virtualenv's python path due to
performance concerns (although such functionality is available via the setup.py keyword in a packages.txt file).
Plug-in Basics - Plugins
you can use the plug-in api to write plug-ins that are media type driven and provide high
performance by taking advantage of native code.
Browser Toolbox - Firefox Developer Tools
altogether you will have access to the following developer tools: debugger (note: if you want to debug a specific add-on that is restartless or sdk-based then try the add-on debugger.) console style editor
performance network monitor page inspector accessibility inspector you can debug chrome: and about: pages using the normal debugger, just as if they were ordinary content pages.
Aggregate view - Firefox Developer Tools
let's get an allocation trace: open the memory tool check "record call stacks" load https://mdn.github.io/
performance-scenarios/dom-allocs/alloc.html take a snapshot select "view/aggregate" select "group by/call stack" you should see something like this: this is telling us that 93% of the total heap snapshot was allocated in functions called from "alloc.js", line 35 (our initial createtoolbars() call).
Network Monitor - Firefox Developer Tools
ui overview the ui is divided into four main pieces: the main screen contains the toolbar, the network request list, and the network request details pane: the
performance analysis view is a separate screen: working with the network monitor the following articles cover different aspects of using the network monitor: toolbar network request list network request details network traffic recording
performance analysis throttling ...
How to - Firefox Developer Tools
open the
performance tools to open the
performance tools: press shift + f5 select "
performance" from the web developer submenu in the firefox menu (or tools menu if you display the menu bar or are on os x) select "
performance" from tools button, in the toolbar, if you have one: record a profile to start a new recording, press the stopwatch icon in the recordings pane.
Responsive Design Mode - Firefox Developer Tools
the characteristics emulated are: download speed upload speed minimum latency the table below lists the numbers associated with each network type, but please do not rely on this feature for exact
performance measurements; it's intended to give an approximate idea of the user experience in different conditions.
Firefox Developer Tools
performance tools analyze your site's general responsiveness, javascript, and layout
performance.
AbstractRange - Web APIs
this is useful when you need to specify a range that will only be used once, since it avoids the
performance and resource impact of the more complex range interface.
AudioConfiguration - Web APIs
} }; // check support and
performance navigator.mediacapabilities.decodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.supported ?
AudioNode - Web APIs
slightly better
performance: in both chrome and firefox, the factory methods call the constructors internally.
AudioTrack.enabled - Web APIs
setting enabled to false effectively mutes the audio track, preventing it from contributing to the media's audio
performance.
AudioTrackList.getTrackById() - Web APIs
this function allows the game to disable a specific character's audio in order to adjust the movie's
performance based on occurrences within the game; if the character's dialog isn't relevant, it gets left out.
Using the CSS Typed Object Model - Web APIs
converting css object model value strings into meaningfully-typed javascript representations and back (via htmlelement.style) can incur a significant
performance overhead.
A basic ray-caster - Web APIs
the canvas overview and tutorial i found here at mdn are great, but nobody had written about animation yet, so i thought i'd try a port of a basic raycaster i'd worked on a while ago, and see what sort of
performance we can expect from a javascript-controlled pixel buffer.
Basic animations - Web APIs
it takes a lot of time to redraw complex frames and the
performance depends highly on the speed of the computer it's running on.
Drawing shapes with canvas - Web APIs
to simplify the code and to improve
performance, the path2d object, available in recent versions of browsers, lets you cache or record these drawing commands.
Using images - Web APIs
another advantage is that you don't need to load every image individually, which can improve load
performance.
Crypto.getRandomValues() - Web APIs
to guarantee enough
performance, implementations are not using a truly random number generator, but they are using a pseudo-random number generator seeded with a value with enough entropy.
DedicatedWorkerGlobalScope - Web APIs
workerglobalscope.
performance read only returns the
performance object associated with the worker, which is a regular
performance object, but with a subset of its properties and methods available.
Document.evaluate() - Web APIs
generally, more specific xpath selectors as in the above example usually gives a significant
performance improvement, especially on very large documents.
DocumentFragment - Web APIs
changes made to the fragment don't affect the document (even on reflow) or incur any
performance impact when changes are made.
EffectTiming.iterationStart - Web APIs
usually you'll use a value between 0.0 and 1.0 to indicate an offset into the first run of the animation at which to begin the animation
performance, but any positive, non-infinite value is allowed.
HTMLImageElement.loading - Web APIs
syntax let imageloadscheduling = htmlimageelement.loading; htmlimageelement.loading = eagerorlazy; value a domstring providing a hint to the user agent as to how to best schedule the loading of the image to optimize page
performance.
IDBDatabase.transaction() - Web APIs
if you need to open the object store in readwrite mode to change data, you would use the following: var transaction = db.transaction('my-store-name', "readwrite"); as of firefox 40, indexeddb transactions have relaxed durability guarantees to increase
performance (see bug 1112702), which is the same behaviour as other indexeddb-supporting browsers.
IDBIndex.getAll() - Web APIs
there is a
performance cost associated with looking at the value property of a cursor, because the object is created lazily.
IDBTransaction.oncomplete - Web APIs
as of firefox 40, indexeddb transactions have relaxed durability guarantees to increase
performance (see bug 1112702), which is the same behaviour as other indexeddb-supporting browsers.
IDBTransaction - Web APIs
firefox durability guarantees note that as of firefox 40, indexeddb transactions have relaxed durability guarantees to increase
performance (see bug 1112702.) previously in a readwrite transaction idbtransaction.oncomplete was fired only when all data was guaranteed to have been flushed to disk.
Basic concepts - Web APIs
as of firefox 40, indexeddb transactions have relaxed durability guarantees to increase
performance (see bug 1112702), which is the same behaviour as other indexeddb-supporting browsers.
InterventionReportBody - Web APIs
an intervention report is generated when usage of a feature in a web document has been blocked by the browser for reasons such as security,
performance, or user annoyance.
LayoutShift - Web APIs
// https://bugs.webkit.org/show_bug.cgi?id=209216 try { let cumulativelayoutshiftscore = 0; const observer = new
performanceobserver((list) => { for (const entry of list.getentries()) { // only count layout shifts without recent user input.
LocalFileSystem - Web APIs
for example, if you were to create a mail app, you might create a temporary storage for caching assets (like images and attachments) to speed up
performance, while creating persistent storage for unique data—such as drafts of emails that were composed while offline—that should not be lost before they are backed up into the cloud.
MediaCapabilitiesInfo - Web APIs
example // mediaconfiguration to be tested const mediaconfig = { type : 'file', audio : { contenttype : "audio/ogg", channels : 2, bitrate : 132700, samplerate : 5200 }, }; // check support and
performance navigator.mediacapabilities.decodinginfo(mediaconfig).then(result => { // result contains the media capabilities information console.log('this configuration is ' + (result.supported ?
MediaDecodingConfiguration - Web APIs
} }; // check support and
performance navigator.mediacapabilities.decodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.supported ?
MediaEncodingConfiguration - Web APIs
} }; // check support and
performance navigator.mediacapabilities.encodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.supported ?
MediaTrackConstraints.latency - Web APIs
in most cases, low latency is desirable for
performance and user experience purposes, but when power consumption is a concern, or delays are otherwise acceptable, higher latency might be acceptable.
Using the Media Capabilities API - Web APIs
support for getting real-time feedback about the playback of media, so your code can make informed decisions about adapting the stream's quality or other settings to manage the user's perceived media
performance and quality.
msFirstPaint - Web APIs
var otiming = window.
performance.timing; var itimems = otiming.msfirstpaint - otiming.navigationstart; ...
Node.textContent - Web APIs
sometimes people use innerhtml to retrieve or write text inside an element, but textcontent has better
performance because its value is not parsed as html.
PaymentRequest.show() - Web APIs
function validateresponse(response) { checkallvalues(response) .then(response => response.complete("success")) .catch(response => response.complete("fail")); } you could even have checkallvalues() be a synchronous function, although that may have
performance implications you don't want to deal with: function validateresponse(response) { if (checkallvalues(response) { response.complete("success"); } else { response.complete("fail"); } } see the article using promises for more information if you need more information about working with promises.
Pbkdf2Params - Web APIs
the general guidance here is to use as many iterations as possible, subject to keeping an acceptable level of
performance for your application.
RTCConfiguration.iceServers - Web APIs
while it can be useful to provide a second server as a fallback in case the first is offline, listing too many servers can delay the user's connection being established, depending on the network's
performance and how many servers get used for negotiation before a connection is established.
RTCIceCandidate - Web APIs
this is used to help optimize ice
performance while prioritizing and correlating candidates that appear on multiple rtcicetransport objects.
RTCIceCandidatePairStats.writable - Web APIs
note: this property was removed from the specification in early 2017 because you can determine whether or not an incoming ice request is available to read by checking to see if responsesreceived is greater than 0 and that the time specified by consentexpiredtimestamp has not passed: if (icpstats.responsesreceived > 0 && icpstats.consentexpiredtimestamp <
performance.now()) { /* at least one ice response has been received */ } ...
RTCIceCandidatePairStats - Web APIs
the webrtc rtcicecandidatepairstats dictionary reports statistics which provide insight into the quality and
performance of an rtcpeerconnection while connected and configured as described by the specified pair of ice candidates.
RTCOutboundRtpStreamStats.pliCount - Web APIs
however, the primary purpose of a pli packet is to allow the rtcrtpsender for which this rtcoutboundrtpstreamstats object provides statistics to consider techniques to mitigate network
performance issues.
Range - Web APIs
range.detach() releases the range from use to improve
performance.
Sensor APIs - Web APIs
making all this information consistently available is costly to
performance and battery life.
Service Worker API - Web APIs
performance enhancements, for example pre-fetching resources that the user is likely to need in the near future, such as the next few pictures in a photo album.
SharedWorkerGlobalScope - Web APIs
workerglobalscope.
performance read only returns the
performance object associated with the worker, which is a regular
performance object, but with a subset of its properties and methods available.
StorageEstimate - Web APIs
these values are only estimates for several reasons, including both
performance and preventing storage capacity data from being used for fingerprinting purposes.
TaskAttributionTiming - Web APIs
<div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/
performanceentry" target="_top"><rect x="1" y="1" width="160" height="50" fill="#fff" stroke="#d4dde4" stroke-width="2px" /><text x="81" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">
performanceentry</text></a><polyline points="161,25 171,20 171,30 161,25" stroke="#d4dde4" fill="none"/><line x1="171" y1="25" x2=...
TextEncoder.prototype.encodeInto() - Web APIs
.textcontent += 'bytes read: ' + encodedresults.read + ' | bytes written: ' + encodedresults.written + ' | encoded result: ' + utf8; polyfill the polyfill below may be a bit long because of the switch cases and utilization of native textencoder.prototype.encode in safari when available, but it is well worth the length because of the gains in
performance.
TextTrackCue - Web APIs
these cues represent a string of text that is presented for some duration of time during the
performance of a texttrack.
URL.createObjectURL() - Web APIs
browsers will release object urls automatically when the document is unloaded; however, for optimal
performance and memory usage, if there are safe times when you can explicitly unload them, you should do so.
WEBGL_debug_renderer_info - Web APIs
the webglrenderingcontext.getparameter() method can help you to detect which features are supported and the failifmajor
performancecaveat context attribute lets you control if a context should be returned at all, if the
performance would be dramatically slow.
WebGLQuery - Web APIs
another kind of queries are disjoint timer queries, which allow you to measure
performance and profiling of your gpu.
WebGLRenderingContext.getContextAttributes() - Web APIs
examples given this <canvas> element <canvas id="canvas"></canvas> and given this webgl context var canvas = document.getelementbyid('canvas'); var gl = canvas.getcontext('webgl'); gl.getcontextattributes(); the getcontextattributes method returns an object that describes the attributes set on this context, for example: { alpha: true, antialias: true, depth: true, failifmajor
performancecaveat: false, powerpreference: "default", premultipliedalpha: true, preservedrawingbuffer: false, stencil: false, desynchronized: false } the context attributes can be set when creating the context using the htmlcanvaselement.getcontext() method: canvas.getcontext('webgl', { antialias: false, depth: false }); see getcontext() for more information a...
Using bounded reference spaces - Web APIs
there are many uses for bounded reference spaces, including projects such as virtual paint studios or 3d construction, modeling, or sculpting systems; training simulations or lesson scenarios; dance or other
performance-based games; or the preview of 3d objects in the real world using augmented reality.
Viewpoints and viewers: Simulating cameras in WebXR - Web APIs
the value of w is always 0 for vectors, so the aforementioned vector can also be represented using [3, 1, -2, 0] or: [31-20]\left [ \begin{matrix} 3 \\ 1 \\ -2 \\ 0 \end{matrix} \right ] webxr automatically normalizes vectors to have a length of 1 meter; however, you may find that it makes sense to do it yourself for various reasons, such as to improve
performance of calculations by not having to repeatedly perform normalization.
Fundamentals of WebXR - Web APIs
some platforms may provide previously-cleared frames to you, while others may optimize
performance by not erasing the framebuffers in order to avoid having to touch each pixel twice per frame.
Lighting a WebXR setting - Web APIs
while there may be more than one of these in a scene, you can probably slightly improve
performance by combining them into one on your own, since each one will always affect every pixel evenly anyway.
window.requestIdleCallback() - Web APIs
currently only one property is defined: timeout: if timeout is specified and has a positive value, and the callback has not already been called by the time timeout milliseconds have passed, the callback will be called during the next idle period, even if doing so risks causing a negative
performance impact.
XRHandedness - Web APIs
fspace) { for (let source of session.inputsources) { if (source.gripspace) { let grippose = frame.getpose(source.gripspace, refspace); if (grippose) { myrenderhandobject(grippose, inputsource.handedness); } } } } this function, which would be called every animation frame (or possibly just periodically, depending on the degree of smoothness required and any
performance constraints), scans the list of input sources looking for any which have a gripspace which isn't null.
XRInputSource.handedness - Web APIs
fspace) { for (let source of session.inputsources) { if (source.gripspace) { let grippose = frame.getpose(source.gripspace, refspace); if (grippose) { myrenderhandobject(grippose, inputsource.handedness); } } } } this function, which would be called every animation frame (or possibly just periodically, depending on the degree of smoothness required and any
performance constraints), scans the list of input sources looking for any which have a gripspace which isn't null.
XRWebGLLayerInit.depth - Web APIs
this means that the only source for depth information is the vertex coordinates, and reduces the accuracy and quality of rendering, but may potentially affect the
performance of rendering as well.
ARIA Test Cases - Accessibility
note that for tabs with ajax content, for
performance reasons it is optional that they only load the panel only once the user presses space on the new tab.
Variable fonts guide - CSS: Cascading Style Sheets
for comparison, it is typical in a typographic system for a magazine to use 10–15 or more different weight and width combinations throughout the publication — giving a much wider range of styles than currently typical on the web (or indeed practical for
performance reasons alone).
contain - CSS: Cascading Style Sheets
this allows the browser to recalculate layout, style, paint, size, or any combination of them for a limited area of the dom and not the entire page, leading to obvious
performance benefits.
text-justify - CSS: Cascading Style Sheets
auto the browser chooses the best type of justification for the current situation based on a balance between
performance and quality, but also on what is most appropriate for the language of the text (e.g., english, cjk languages, etc.).
Event reference
resourcetimingbufferfull
performance resource timing the browser's resource timing buffer is full.
WAI ARIA Live Regions/API Support - Developer guides
these features will help screen reader developers improve the quality and
performance of live region support, both for pages that are marked up with aria live region markup, and for pages where the author did not add any additional markup.
Guide to Web APIs - Developer guides
ch apifile system api frame timing apifullscreen apiggamepad api geolocation apihhtml drag and drop apihigh resolution timehistory apiiimage capture apiindexeddbintersection observer apillong tasks api mmedia capabilities api media capture and streamsmedia session apimedia source extensions mediastream recordingnnavigation timingnetwork information api ppage visibility apipayment request api
performance api
performance timeline apipermissions apipointer eventspointer lock apiproximity events push api rresize observer apiresource timing apisserver sent eventsservice workers apistoragestorage access apistreams ttouch eventsuurl apivvibration apivisual viewport wweb animationsweb audio apiweb authentication apiweb crypto apiweb notificationsweb storage apiweb workers apiwebglwebrtcwebvttwebxr de...
Developer guides
optimization and
performance when building modern web apps and sites, it's important to make your content work quickly and efficiently.
Microdata - HTML: Hypertext Markup Language
this vocabulary defines a standard set of type names and property names, for example, schema.org music event indicates a concert
performance, with startdate and location properties to specify the concert's key details.
HTML: Hypertext Markup Language
this ensures that they are made available earlier and are less likely to block the page's first render, leading to
performance improvements.
Evolution of HTTP - HTTP
http/2 – a protocol for greater
performance over the years, web pages have become much more complex, even becoming applications in their own right.
Configuring servers for Ogg media - HTTP
note: of course, the more key frames you use, the larger your video file is, so you may need to experiment a bit to get the right balance between file size and seek
performance.
Using HTTP cookies - HTTP
cookies are sent with every request, so they can worsen
performance (especially for mobile data connections).
Cross-Origin Resource Policy (CORP) - HTTP
these vulnerabilities allowed sensitive data disclosure due to a race condition which arose as part of speculative execution functionality, designed to improve
performance.
Using Feature Policy - HTTP
enforcing best practices for good user experiences it's difficult to build a website that uses all the latest best practices and provides great
performance and user experiences.
Feature Policy - HTTP
best practices for good user experiences there are several policy-controlled features to help enforce best practices for providing good
performance and user experiences.
Cross-Origin-Embedder-Policy - HTTP
examples certain features depend on cross-origin isolation you can only access certain features like sharedarraybuffer objects or
performance.now() with unthrottled timers, if your document has a coep header with the value require-corp value set.
Cross-Origin-Opener-Policy - HTTP
examples certain features depend on cross-origin isolation certain features like sharedarraybuffer objects or
performance.now() with unthrottled timers are only available if your document has a coop header with the value same-origin value set.
X-DNS-Prefetch-Control - HTTP
this will improve the overall
performance of site even though the
performance of the home page may not be affected.
CSS Houdini
css properties and values api reference css properties and values api guide css typed om converting cssom value strings into meaningfully typed javascript representations and back can incur a significant
performance overhead.
Closures - JavaScript
byid('help').innerhtml = help; } function setuphelp() { var helptext = [ {'id': 'email', 'help': 'your e-mail address'}, {'id': 'name', 'help': 'your full name'}, {'id': 'age', 'help': 'your age (you must be over 16)'} ]; helptext.foreach(function(text) { document.getelementbyid(text.id).onfocus = function() { showhelp(text.help); } }); } setuphelp();
performance considerations it is unwise to unnecessarily create functions within other functions if closures are not needed for a particular task, as it will negatively affect script
performance both in terms of processing speed and memory consumption.
Introduction - JavaScript
you will learn what these mean, but for now they can be thought of as doing the following: massively improve
performance.
Unicode property escapes - JavaScript
note: as there are many properties and values available, we will not describe them exhaustively here but rather provide various examples rationale before es2018 there was no
performance-efficient way to match characters from different sets based on scripts (like macedonian, greek, georgian etc.) or propertyname (like emoji etc) in javascript.
Memory Management - JavaScript
amount of available heap memory can be increased with a flag: node --max-old-space-size=6000 index.js we can also expose the garbage collector for debugging memory issues using a flag and the chrome debugger: node --expose-gc --inspect index.js see also ibm article on "memory leak patterns in javascript" (2007) kangax article on how to register event handler and avoid memory leaks (2010)
performance ...
Classes - JavaScript
strict mode the body of a class is executed in strict mode, i.e., code written here is subject to stricter syntax for increased
performance, some otherwise silent errors will be thrown, and certain keywords are reserved for future versions of ecmascript.
arguments.callee - JavaScript
1 : factorial(n - 1)*n; }); this has numerous benefits: the function can be called like any other from inside your code it does not create a variable in the outer scope (except for ie 8 and below) it has better
performance than accessing the arguments object another feature that was deprecated was arguments.callee.caller, or more specifically function.caller.
Array.prototype.indexOf() - JavaScript
} else // all else for (; i !== len; ++i) if (that[i] === member) return i return -1 // if the value was not found, then return -1 } })(object, math.max, math.min) however, if you are more interested in all the little technical bits defined by the ecma standard, and are less concerned about
performance or conciseness, then you may find this more descriptive polyfill to be more useful.
Date - JavaScript
() // elapsed time in milliseconds // to test a function and get back its return function printelapsedtime(ftest) { let nstarttime = date.now(), vreturn = ftest(), nendtime = date.now() console.log(`elapsed time: ${ string(nendtime - nstarttime) } milliseconds`) return vreturn } let yourfunctionreturn = printelapsedtime(yourfunction) note: in browsers that support the web
performance api's high-resolution time feature,
performance.now() can provide more reliable and precise measurements of elapsed time than date.now().
Function() constructor - JavaScript
calling the constructor directly can create functions dynamically, but suffers from security and similar (but far less significant)
performance issues to eval.
Function - JavaScript
calling the constructor directly can create functions dynamically but suffers from security and similar (but far less significant)
performance issues to eval.
Map - JavaScript
performance performs better in scenarios involving frequent additions and removals of key-value pairs.
Math.clz32() - JavaScript
now, inversing the bits reveals the lowest zeros return 32 - clon(~integer) |0; */ } make these helper functions into asm.js module; then, you have a true
performance masterpiece.
Math.imul() - JavaScript
if you use normal javascript floating point numbers in imul, you will experience a degrade in
performance.
String.prototype.localeCompare() - JavaScript
performance when comparing large numbers of strings, such as in sorting large arrays, it is better to create an intl.collator object and use the function provided by its compare property.
eval() - JavaScript
function call overhead is minimal, making the far smaller code size well worth the benefit function() more easily allows your code to utilize the
performance buttering "use strict"; the code does not use eval(), making it orders of magnitude faster than otherwise.
JavaScript
it is a restricted variant of ecmascript 5, for faster
performance and easier debugging.
Autoplay guide for media and Web Audio APIs - Web media technologies
and when autoplay is true, the media will automatically begin to play as soon as possible after the following have occurred: the page is allowed to use autoplay functionality the element has been created during page load enough media has been received to begin playback and continue to play through to the end of the media without interruption, assuming there are no dramatic changes in network
performance or bandwidth.
Web media technologies
streaming audio and video a guide which covers how to stream audio and video, as well as techniques and technologies you can take advantage of to ensure the best possible quality and/or
performance of your streams.
PWA developer guide - Progressive web apps (PWAs)
topics pushing data from the server to your web application some description resource management description integration with the host device description security and privacy description gaming topics for web app developers description polishing web apps web api equivalents for common native apis some description platform-specific tips and issues description web application
performance guide description ensuring a good user experience description related topics some topic some description ...
Progressive web apps (PWAs)
in this article we will go even further and improve the
performance of the app by progressively loading its resources.progressive web app structurenow that we know the theory behind pwas, let's look at the recommended structure of an actual app.
color-rendering - SVG: Scalable Vector Graphics
in this case, the svg user agent should perform color operations in a way that optimizes
performance, which might mean sacrificing the color interpolation precision as specified by through the linearrgb value for color-interpolation-filters.
order - SVG: Scalable Vector Graphics
it is recommended that only small values (e.g., 3) be used; higher values may result in very high cpu overhead and usually do not produce results that justify the impact on
performance.