Search completed in 1.48 seconds.
817 results for "Performance":
Your results are loading. Please wait...
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
Recommended Web Performance Timings: How long is too long? - Web Performance
in optimizing for performance, do set an ambitious first load goal, such as 5 seconds over the mobile 3g network and 1.5 seconds on an office t1 line, with even more ambitious page load goals for subsequent page loads, leveraging service workers and caching.
Optimizing startup performance - Web Performance
an often overlooked aspect of app software development—even among those focusing on performance optimization—is startup performance.
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
WebAPIPerformancemark
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
WebAPIPerformancenow
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.
Actionscript Performance Tests - Archive of obsolete content
performance tests for tamarin are located in the test/performance directory.
...see the --help usage for more details about performance tests.
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.
Measuring add-on startup performance - Archive of obsolete content
using about:startup the about startup add-on provides a much simpler way to measure startup performance.
Measuring performance using the PerfMeasurement.jsm code module
the perfmeasurement.jsm javascript code module lets you take detailed performance measurements of your code.
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", "...
PerformanceResourceTiming.serverTiming - Web APIs
the servertiming read-only property returns an array of performanceservertiming entries containing server timing metrics.
Using dns-prefetch - Web Performance
for websites that open connections to many third parties, this latency can significantly reduce loading performance.
Index - Web APIs
WebAPIIndex
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
MozillaTechXPCOMIndex
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
WebHTTPIndex
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 favorperformancehint(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.
...favorperformancehint() 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
WebGuideHTMLHTML5
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
WebHTTPCaching
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::flushperformancemonitoring (bug 1181175) js::resetperformancemonitoring (bug 1181175) js::disposeperformancemonitoring (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::addcpowperformancedelta (bug 1181175) js::setstopwatchstartcallback (bug 1208747) js::setstopwatchcommitcallback (bug 1208747) js::setgetperformancegroupscallback (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 dtperformancesession 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
failifmajorperformancecaveat: 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
WebAPIWebGL API
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
WebCSSposition
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
WebGuideIndex
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
WebHTMLIndex
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.
Local Storage - Archive of obsolete content
this impacts performance and fills the log with useless messages.
... we normally add a comment that indicates that logging is not done there for performance reasons.
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).
No Proxy For configuration - Archive of obsolete content
initially, proxy servers were used for access control and performance.
...because the public network was small in scope and connections were slow, a caching proxy could often improve the overall performance.
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 Build System Documentation - Archive of obsolete content
the set of smoke tests can contain any shell build and any test suite (including performance).
...the performance and deep phases do not run synchronously.
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
ArchiveMozillaXULTutorialTrees
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.
Real User Monitoring (RUM) - MDN Web Docs Glossary: Definitions of Web-related terms
real user monitoring or rum measures the performance of a page from real users' machines.
...in rum, the third party script collects performance metrics from the real users' browsers.
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
MozillaProjectsNSStoolsmodutil
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
MozillaProjectsNSStoolssignver
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
WebAPIConsole
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
WebAPIElementclassList
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
WebAPIWindow
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
WebAPIWorklet
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
WebAPI
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 apiperformance apiperformance 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...
Implementing a Microsoft Active Accessibility (MSAA) Server - Accessibility
myth: msaa is too slow reality: assistive technology vendors have found ways around most of the performance problems related to out-of-process com method calls.
... just make sure to have decent performance on your end.
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
WebCSSfilter
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
WebGuideHTMLHTML5HTML5 Parser
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
WebHTMLAttributesrel
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
WebHTTPHeadersIndex
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
WebHTTPMessages
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
WebHTTPOverview
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.
Creating custom Firefox extensions with the Mozilla build system - Archive of obsolete content
reasons why you might want to include c++ components in your extension include: need for high-performance beyond what can be delivered by javascript code.
Developing add-ons - Archive of obsolete content
performance performance guides and utilities to help you make your add-on perform well (and to play nicely with others).
Listening to events in Firefox extensions - Archive of obsolete content
the filter acts to reduce the number of status and progress events to improve performance.
Adding Events and Commands - Archive of obsolete content
please read appendix a for recommendations on how to use the load event to initialize your add-on without having a negative performance impact on firefox.
Adding Toolbars and Toolbar Buttons - Archive of obsolete content
there is also a performance gain from using a single file.
Appendix C: Avoiding using eval in Add-ons - Archive of obsolete content
also, calling .bind() in a tight (inner) loop should be avoided for performance reasons, as calling .bind() does require some work and memory.
Connecting to Remote Content - Archive of obsolete content
using xpath to parse a complete xml document is probably not a good idea performance-wise.
Setting Up a Development Environment - Archive of obsolete content
mozilla has proven with time that they take memory usage seriously, improving performance on several critical areas and removing all kinds of memory leaks.
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).
Bypassing Security Restrictions and Signing Code - Archive of obsolete content
these privilege manager feature was not used much (aside from abuse), and its complexity made performance improvements difficult.
MCD, Mission Control Desktop, AKA AutoConfig - Archive of obsolete content
by migrating from university of washington imap server to cyrus imap we also inherited some interesting features like quotas, share folders, acl, mail only account (no need for /etc/passwd entry!) much better performances, etc...
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.
Gecko Coding Help Wanted - Archive of obsolete content
it's really improved code readability, reduced code size, and sped up performance.
Migrate apps from Internet Explorer to Mozilla - Archive of obsolete content
document fragments for performance reasons, you can create documents in memory, rather than working on the existing document's dom.
Monitoring downloads - Archive of obsolete content
what times of day do you get the best download performance?
Mozilla Application Framework in Detail - Archive of obsolete content
the following architectural diagram depicts necko and its interaction with subsystems: necko is powerful, stable and robust, with current development focused on performance and standards-compliance.
Space Manager Detailed Design - Archive of obsolete content
space manager instances come and go pretty frequently, and this recycler prevents excessive heap allocations and the performance penalties associated with it.
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.
The new nsString class implementation (1999) - Archive of obsolete content
the i18n folks will tell you it's better to use a wide string and convert to 1-byte forms for this purpose even though there is a performance penalty for doing so.
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.
Directions of the Mozilla RDF engine - Archive of obsolete content
these include plans to expose the rdf api to public web content, as well as performance and correctness improvements.
XTech 2005 Presentations - Archive of obsolete content
these include plans to expose the rdf api to public web content, as well as performance and correctness improvements.
flags - Archive of obsolete content
this results in a performance enhancement, but you will not be able to use the dom functions to retrieve the tree rows.
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
ArchiveMozillaXULIndex
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.
Building Trees - Archive of obsolete content
the performance advantage is possible since trees only display text.
Multiple Queries - Archive of obsolete content
there's no performance benefit, but it does save some typing.
Document Object Model - Archive of obsolete content
however, for various reasons, including better performance, you should always put scripts in separate files, except for short fragments which can be put directly in the event handler.
Tree Selection - Archive of obsolete content
this results in a performance improvement.
XUL Structure - Archive of obsolete content
this improves performance.
XUL element attributes - Archive of obsolete content
this results in a performance enhancement, but you will not be able to use the dom functions to retrieve the tree rows.
tree - Archive of obsolete content
ArchiveMozillaXULtree
this results in a performance enhancement, but you will not be able to use the dom functions to retrieve the tree rows.
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.
JS-Engine FAQ - Archive of obsolete content
rhino what is the performance between rhino js and native java rhino js is significantly slower in run-time than native java.
2006-11-17 - Archive of obsolete content
view performance discussion about tests on view performance.
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.
Introduction to Public-Key Cryptography - Archive of obsolete content
in general, high-performance directory services are an essential ingredient of any enterprise certificate management strategy.
Theme changes in Firefox 4 - Archive of obsolete content
omni.jar firefox 4 achieves performance improvements by moving many of its internal parts from being standalone files or sets of jar files into just one jar file; this reduces the amount of i/o needed to load firefox.
Using IO Timeout And Interrupt On NT - Archive of obsolete content
the win95 version runs without trouble on nt, but you would lose the better performance provided by nt fibers and asynchronous io.
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 ...
New in JavaScript 1.8.1 - Archive of obsolete content
javascript 1.8.1 is a modest update syntactically to javascript; the main change in this release is the addition of the tracemonkey just-in-time compiler, which improves performance.
Object.prototype.unwatch() - Archive of obsolete content
in addition, using watchpoints has a serious negative impact on performance, which is especially true when used on global objects, such as window.
Object.prototype.watch() - Archive of obsolete content
in addition, using watchpoints has a serious negative impact on performance, which is especially true when used on global objects, such as window.
RDF: Resource Description Framework for metadata - Archive of obsolete content
ArchiveWebRDF
these include plans to expose the rdf api to public web content, as well as performance and correctness improvements.
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.
Choosing Standards Compliance Over Proprietary Practices - Archive of obsolete content
lastly, by following a series of standards, organizations can more easily measure progress, performance, and results across the organization.
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.
Game distribution - Game development
it has it's own performance optimizations for games rendered on canvas and supports many game frameworks.
3D collision detection - Game development
the axis-aligned constraint is there because of performance reasons.
Code splitting - MDN Web Docs Glossary: Definitions of Web-related terms
then features required at page load can be downloaded immediately with additional scripts being lazy loaded after the page or application is interactive, thus improving performance.
Compile - MDN Web Docs Glossary: Definitions of Web-related terms
jit compilers are usually transparent to you, used for performance.
Developer Tools - MDN Web Docs Glossary: Definitions of Web-related terms
they let users inspect and debug the page's html, css, and javascript, allow to inspect the network traffic it causes, make it possible to measure it's performance, and much more.
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...
Domain sharding - MDN Web Docs Glossary: Definitions of Web-related terms
the problem with domain sharding, in terms of performance, is the cost of extra dns lookups for each domain and the overhead of establishing each tcp connection.
Effective connection type - MDN Web Docs Glossary: Definitions of Web-related terms
effective connection type (ect) refers to the measured network performance, returning a cellular connection type, like 3g, even if the actual connection is tethered broadband or wifi, based on the time between the browser requesting a page and effective type of the connection.
First CPU idle - MDN Web Docs Glossary: Definitions of Web-related terms
it is a non-standard google web performance metric.
First interactive - MDN Web Docs Glossary: Definitions of Web-related terms
first interactive, also known as first cpu idle, is a non-standard web performance metric that measures when the user's window is quiet enough to handle user input, or what is termed as minimally interactive.
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 ...
IndexedDB - MDN Web Docs Glossary: Definitions of Web-related terms
indexeddb is a web api for storing large data structures within browsers and indexing them for high-performance searching.
JavaScript - MDN Web Docs Glossary: Definitions of Web-related terms
javascript is one of the world's most commonly-used languages, owing to the recent growth and performance improvement of apis available in browsers.
Lazy load - MDN Web Docs Glossary: Definitions of Web-related terms
if correctly implemented, this delay in asset loading is seamless to the user experience and might help improve initial load performance, including time to interactive, as fewer assets are required for the page to start working.
Network throttling - MDN Web Docs Glossary: Definitions of Web-related terms
in web performance, network throttling, or network condition emulation, it is used to emulate low bandwidth conditions experienced by likely a large segment of a site's target user base.
Page prediction - MDN Web Docs Glossary: Definitions of Web-related terms
page prediction improves performance by enabling almost instant loading of predicted content.
Polyfill - MDN Web Docs Glossary: Definitions of Web-related terms
the reason why polyfills are not used exclusively is for better functionality and better performance.
Prefetch - MDN Web Docs Glossary: Definitions of Web-related terms
<link rel="dns-prefetch" href="https://example.com/"> link prefetching link prefetching is a performance optimization technique that works by assuming which links the user is likely to click, then downloading the content of those links.
Resource Timing - MDN Web Docs Glossary: Definitions of Web-related terms
diagnosing performance issues requires performance data at the granularity of the resource.
SIMD - MDN Web Docs Glossary: Definitions of Web-related terms
simd allows one same operation to be performed on multiple data points resulting in data level parallelism and thus performance gains — for example, for 3d graphics and video processing, physics simulations or cryptography, and other domains.
SPA (Single-page application) - MDN Web Docs Glossary: Definitions of Web-related terms
this therefore allows users to use websites without loading whole new pages from the server, which can result in performance gains and a more dynamic experience, with some tradeoff disadvantages such as seo, more effort required to maintain state, implement navigation, and do meaningful performance monitoring.
Server Timing - MDN Web Docs Glossary: Definitions of Web-related terms
the server timing specification enables the server to communicate performance metrics from the request-response cycle to the user agent, and utilizes a javascript interface to allow applications to collect, process, and act on these metrics to optimize application delivery.
Speed index - MDN Web Docs Glossary: Definitions of Web-related terms
speed index (si) is a page load performance metric that shows you how quickly the contents of a page are visibly populated.
Symmetric-key cryptography - MDN Web Docs Glossary: Definitions of Web-related terms
symmetric-key algorithms should be secure when used properly and are highly efficient, so they can be used to encrypt large amounts of data without having a negative effect on performance.
Thread - MDN Web Docs Glossary: Definitions of Web-related terms
this allows slow, complex, or long-running tasks to be executed independently of the main thread, preserving the overall performance of the site or app—as well as that of the browser overall.
WebAssembly - MDN Web Docs Glossary: Definitions of Web-related terms
wasm) is an open binary programming format that can be run in modern web browsers in order to gain performance and/or provide new features for web pages.
minification - MDN Web Docs Glossary: Definitions of Web-related terms
minification is used to improve web performance by reducing file size.
Time to first byte - MDN Web Docs Glossary: Definitions of Web-related terms
ttfb is the time it takes between the start of the request and the start of the response, in milliseconds: ttfb = responsestart - requeststart see also: a typical http session performanceresourcetiming performancetiming ...
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.
create fancy boxes - Learn web development
just remember that such use of gradient is quite expensive, performance wise.
How do you make sure your website works properly? - Learn web development
you can also test if your page meets these criteria: how's the performance?
Client-side form validation - Learn web development
built-in form validation has better performance than javascript, but it is not as customizable as javascript validation.
The web and web standards - Learn web development
performance means getting web sites to load as quickly as possible, but also making them intuitive and easy to use so that users don't get frustrated and go somewhere else.
Add a hitmap on top of an image - Learn web development
formerly, image maps were a popular navigation device, but it’s important to thoroughly consider their performance and accessibility ramifications.
Use HTML to solve common problems - Learn web development
LearnHTMLHowto
how to add multiple languages into a single webpage how to display time and date with html performance how to author fast-loading html pages ...
Responsive images - Learn web development
this helps to improve performance across different devices.
Multimedia and Embedding - Learn web development
this helps to improve performance across different devices.
Making asynchronous programming easier with async and await - Learn web development
you'll have to test your code carefully, and bear this in mind if performance starts to suffer.
Choosing the right approach - Learn web development
this means ten microsecond precision and zero time as performance.now().
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".
Client-side web APIs - Learn web development
this seemingly small detail has had a huge impact on the performance and behavior of sites.
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.
Getting started with Ember - Learn web development
fastboot: server-side rendering, including improving search-engine optimization (seo), or improving initial render performance of complex, highly interactive web pages.
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.
Getting started with React - Learn web development
service workers are interesting pieces of code that help application performance and allow features of your web applications to work offline, but they’re not in scope for this article.
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 //...
Using Vue computed properties - Learn web development
for bigger apps, or when the expression is more complicated, that could cause a serious performance problem.
Getting started with Vue - Learn web development
this allows you to create markup managed entirely by vue, which can improve developer experience and performance when dealing with complex applications.
Focus management with Vue refs - Learn web development
since reading and writing actual dom nodes is often more expensive than virtual nodes, this can result in better performance.
Handling common accessibility problems - Learn web development
we've already talked about other spheres such as responsive design and performance in other places in the module.
Deploying our app - Learn web development
could you add more tests to prevent a bad build from deploying, such as performance audits?
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.
Gecko info for Windows accessibility vendors
unique features enhancing performance on the client end via ienumvariant whenever you get an iaccessible, you can qi it to ienumvariant.
Multiprocess on Windows
from a performance standpoint, this is less than ideal.
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.
HTMLIFrameElement.addNextPaintListener()
it is mainly used to investigate performance optimization.
mozbrowserasyncscroll
note: for performance reasons, this event is asynchronous.
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 Tips
for best performance give ids to all important elements.
Following the Android Toasts Tutorial from a JNI Perspective
we want to wrap this in a try-catch statement so if any errors occur we make sure to unload the classes and the java environment, this is good for performance.
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).
Introduction to Network Security Services
the two libraries exist to provide optimal performance on each of the two types of cpus.
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.
NSS environment variables
3.12.6 sslbypass boolean (1 to enable) uses pkcs#11 bypass for performance improvement.
Multithreading in Necko
http, ftp) operate partially on the background threads to improve performance.
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.
SpiderMonkey compartments
this can result in significant performance improvements in some applications.
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_GetGCParameter
adjust performance parameters related to garbage collection.
JS_NewContext
in a debug build, large chunk sizes can degrade performance dramatically.
JS_SetFunctionCallback
using this function may have a significant performance impact.
JS_SetGCParametersBasedOnAvailableMemory
this article covers features introduced in spidermonkey 31 adjust performance parameters related to garbage collection based on available memory.
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
MozillaTechAPNG
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.
Using the Places favicon service
most of the time, the favicon will be served from the browser's cache and will have minimal performance impact.
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.
nsICacheSession
this will streamline overall application performance.
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.
nsINavHistoryContainerResultNode
for host and day groupings, doing this has no performance cost since the children have already been computed.
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.
Accessibility Inspector - Firefox Developer Tools
while it’s running, it slows performance and takes up memory; therefore it interferes with the metrics from other panels such as memory and performance as well as overall browser performance.
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).
DOM allocation example - Firefox Developer Tools
you can try out the site at https://mdn.github.io/performance-scenarios/dom-allocs/alloc.html.
Monster example - Firefox Developer Tools
you can try the site at https://mdn.github.io/performance-scenarios/js-allocs/alloc.html.
Network monitor recording - Firefox Developer Tools
network monitor features the following articles cover different aspects of using the network monitor: toolbar network request list network request details performance analysis throttling ...
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 ...
Paint Flashing Tool - Firefox Developer Tools
because repaints can be performance-intensive operations, eliminating unnecessary repaints can improve your website's responsiveness.
Examples - Firefox Developer Tools
list of demo pages for performance scenarios and walkthroughs.
Flame Chart - Firefox Developer Tools
the flame chart shows you the state of the javascript stack for your code at every millisecond during the performance profile.
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.
Scenarios - Firefox Developer Tools
performance scenarios ...
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.
Settings - Firefox Developer Tools
disable http cache disable the browser http cache to simulate first-load performance in all tabs that have the toolbox open.
Tips - Firefox Developer Tools
network monitor click the request summary to compare performance of cache vs.
Console messages - Firefox Developer Tools
css note: css warnings and reflow messages are not shown by default, for performance reasons (see bug 1452143).
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.
AnalyserNode.getFloatFrequencyData() - Web APIs
if you need higher performance and don't care about precision, you can use analysernode.getbytefrequencydata() instead, which works on a uint8array.
Animation.playState - Web APIs
in the game, for performance reasons, the tears should only be animating when they're visible.
AudioConfiguration - Web APIs
} }; // check support and performance navigator.mediacapabilities.decodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.supported ?
AudioNode - Web APIs
WebAPIAudioNode
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.
CSS Typed Object Model API - Web APIs
this not only simplifies css manipulation, but also lessens the negative impact on performance as compared to htmlelement.style.
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.
Console.profile() - Web APIs
WebAPIConsoleprofile
starts recording a performance profile (for example, the firefox performance tool).
Console.timeStamp() - Web APIs
WebAPIConsoletimeStamp
adds a single marker to the browser's performance or waterfall tool.
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.createDocumentFragment() - Web APIs
historically, using document fragments could result in better performance.
Document.evaluate() - Web APIs
WebAPIDocumentevaluate
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.
Element: mouseenter event - Web APIs
with deep hierarchies, the number of mouseenter events sent can be quite huge and cause significant performance problems.
FileHandle API - Web APIs
secured write operation for performance reasons, write (and read) operations are done in memory.
Gamepad.timestamp - Web APIs
WebAPIGamepadtimestamp
the value must be relative to the navigationstart attribute of the performancetiming interface.
Using the Gamepad API - Web APIs
the value must be relative to the navigationstart attribute of the performancetiming interface.
HTMLCanvasElement - Web APIs
if the canvas knows there's no translucency, painting performance can be optimized.
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.
In depth: Microtasks and the JavaScript runtime environment - Web APIs
even sluggish performance, whether caused by a bug or because of complex work being done by your code, can cause the user to suffer a sluggish browser.
Using microtasks in JavaScript with queueMicrotask() - Web APIs
abusing this capability will lead to performance problems.
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
WebAPIIDBIndexgetAll
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.
IndexedDB API - Web APIs
this api uses indexes to enable high-performance searches of this data.
Intersection Observer API - Web APIs
since all this code runs on the main thread, even one of these can cause performance problems.
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.
LockedFile.flush() - Web APIs
WebAPILockedFileflush
for performance reasons, a lockedfile object buffers all its operation in memory.
MediaCapabilities.decodingInfo() - Web APIs
}, }; // check support and performance navigator.mediacapabilities.decodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.supported ?
MediaCapabilities.encodingInfo() - Web APIs
} }; // check support and performance navigator.mediacapabilities.encodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.supported ?
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 ?
Media Session action types - Web APIs
this lets the browser know it can take steps to optimize repeated operations, and is likely to result in improved performance.
MediaSessionActionDetails - Web APIs
this lets the browser know it can take steps to optimize repeated operations, and is likely to result in improved performance.
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
WebAPINodetextContent
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.
OffscreenCanvas.getContext() - Web APIs
failifmajorperformancecaveat: boolean that indicates if a context will be created if the system performance is low.
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.
PublicKeyCredentialCreationOptions.extensions - Web APIs
biometricperfbounds object with two numerical properties: far and frr biometric authenticator performance bounds.
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.
RTCDtlsTransport - Web APIs
the default policy is "balanced", which provides a balance between performance and compatibility.
RTCIceCandidate.protocol - Web APIs
this is the preferred protocol for media interactions because of its better performance profile.
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.
RTCIceCandidateStats.protocol - Web APIs
this is the preferred protocol for media interactions because of its better performance profile.
RTCIceProtocol - Web APIs
this is the preferred protocol for media interactions because of its better performance profile.
RTCInboundRtpStreamStats.pliCount - Web APIs
however, the primary purpose of this message is to allow the sender to consider techniques to mitigate network performance issues.
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.
RTCRtpStreamStats.pliCount - Web APIs
however, the primary purpose of this message is to allow the sender to consider techniques to mitigate network performance issues.
Range - Web APIs
WebAPIRange
range.detach() releases the range from use to improve performance.
Screen Wake Lock API - Web APIs
performance considerations release the screen wake lock when user ends activity that required always-on screen.
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.
TextTrack.mode - Web APIs
WebAPITextTrackmode
the exact appearance and manner of that performance varies depending on each text track's kind.
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.
VideoPlaybackQuality.creationTime - Web APIs
for details on how the time is determined, see performance.now().
WEBGL_debug_renderer_info - Web APIs
the webglrenderingcontext.getparameter() method can help you to detect which features are supported and the failifmajorperformancecaveat 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, failifmajorperformancecaveat: 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...
A basic 2D WebGL animation example - Web APIs
this lets webgl consider any optimizations it can apply that may improve performance based on that information.
Matrix math for the web - Web APIs
glmatrix is an example of a library that has a focus on speed and performance.
Adding 2D content to a WebGL context - Web APIs
performance matters.
WebGL model view projection - Web APIs
// performance note: creating a new array buffer for every draw call is slow.
Signaling and video calling - Web APIs
if they later agree on a better (usually higher-performance) candidate, the stream may change formats as needed.
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.
Geometry and reference spaces in WebXR - Web APIs
as such the time is typically in alignment with the refresh rate of the display, or some fraction thereof if the frame rate needs to be constrained due to performance issues.
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.
Web Audio API best practices - Web APIs
as long as you consider security, performance, and accessibility, you can adapt to your own style.
Controlling multiple parameters with ConstantSourceNode - Web APIs
being able to shorten the number of operations to adjust them all will prove invaluable for code size and performance both.
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.
WindowOrWorkerGlobalScope.setInterval() - Web APIs
to mitigate the potential impact this can have on performance, once intervals are nested beyond five levels deep, the browser will automatically enforce a 4 ms minimum value for the interval.
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.antialias - Web APIs
disabling anti-aliasing may improve performance to some extent.
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.
XRWebGLLayerInit.framebufferScaleFactor - Web APIs
see managing rendering quality in webxr performance guide for more information.
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.
Architecture - Accessibility
one reason for this is that there are fewer nodes to pass across process, and that improves performance.
-moz-image-region - CSS: Cascading Style Sheets
this allows elements to use different pieces of the same image to improve performance.
:has() - CSS: Cascading Style Sheets
WebCSS:has
instead, it could only be used with functions like document.queryselector(); this was due to performance concerns.
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).
Using CSS custom properties (variables) - CSS: Cascading Style Sheets
the technique has been seen to cause performance issues as it takes more time to parse through the variables.
contain - CSS: Cascading Style Sheets
WebCSScontain
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.
opacity() - CSS: Cascading Style Sheets
the difference is that with filters, some browsers provide hardware acceleration for better performance.
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
WebGuideAPI
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 apiperformance apiperformance 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...
Separate sites for mobile and desktop - Developer guides
since only the mobile-specific content, styles, and scripts are sent to mobile users, this method also provides for the best performance out of any of the other options presented here.
Developer guides
optimization and performance when building modern web apps and sites, it's important to make your content work quickly and efficiently.
Applying color to HTML elements using CSS - HTML: Hypertext Markup Language
webgl the web graphics library is an opengl es-based api for drawing high-performance 2d and 3d graphics on the web.
DASH Adaptive Streaming for HTML 5 Video - HTML: Hypertext Markup Language
this means that it allows for a video stream to switch between bit rates on the basis of network performance, in order to keep a video playing.
<canvas>: The Graphics Canvas element - HTML: Hypertext Markup Language
WebHTMLElementcanvas
if the canvas knows there's no translucency, painting performance can be optimized.
<frame> - HTML: Hypertext Markup Language
WebHTMLElementframe
using the <frame> element is not encouraged because of certain disadvantages such as performance problems and lack of accessibility for users with screen readers.
<iframe>: The Inline Frame element - HTML: Hypertext Markup Language
WebHTMLElementiframe
while theoretically you can use as many <iframe>s as you like, check for performance problems.
<img>: The Image Embed element - HTML: Hypertext Markup Language
WebHTMLElementimg
this generally improves the performance of the content in most typical use cases.
<input type="datetime-local"> - HTML: Hypertext Markup Language
if you are stuck with other hardware, you can try to emulate 64-bit hardware inside a 32-bit virtual machine, but most vms don't support this kind of virtualization, stability may suffer, and performance will definately suffer greatly.
<link>: The External Resource Link element - HTML: Hypertext Markup Language
WebHTMLElementlink
for example: <link href="print.css" rel="stylesheet" media="print"> <link href="mobile.css" rel="stylesheet" media="screen and (max-width: 600px)"> some interesting new performance and security features have been added to the <link> element too.
itemtype - HTML: Hypertext Markup Language
for example, musicevent indicates a concert performance, with startdate and location properties specifying the concert's key details.
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.
Using the application cache - HTML: Hypertext Markup Language
this is done in the background and does not affect performance significantly.
HTML: Hypertext Markup Language
WebHTML
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.
Browser detection using the user agent - HTTP
in such cases, it might be beneficial to use user agent sniffing to save on performance.
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
WebHTTPCookies
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.
About JavaScript - JavaScript
work is always ongoing to improve javascript execution performance.
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.
JavaScript modules - JavaScript
this has some obvious performance advantages; let's read on and see how it works.
Regular expression syntax cheatsheet - JavaScript
capturing groups have a performance penalty.
Groups and ranges - JavaScript
capturing groups have a performance penalty.
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.
Regular expressions - JavaScript
if the regular expression remains constant, using this can improve performance.
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.
ReferenceError: deprecated caller or arguments usage - JavaScript
they are deprecated, because they leak the function caller, are non-standard, hard to optimize and potentially a performance-harmful feature.
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.copyWithin() - JavaScript
description the copywithin works like c and c++'s memmove, and is a high-performance method to shift the data of an array.
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.
BigInt.prototype.toLocaleString() - JavaScript
performance when formatting large numbers of numbers, it is better to create a numberformat object and use the function provided by its numberformat.format property.
Date.prototype.toLocaleDateString() - JavaScript
performance when formatting large numbers of dates, it is better to create an intl.datetimeformat object and use the function provided by its format property.
Date.prototype.toLocaleString() - JavaScript
performance when formatting large numbers of dates, it is better to create an intl.datetimeformat object and use the function provided by its format property.
Date.prototype.toLocaleTimeString() - JavaScript
performance when formatting large numbers of dates, it is better to create an intl.datetimeformat object and use the function provided by its format property.
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.
Number.prototype.toLocaleString() - JavaScript
performance when formatting large numbers of numbers, it is better to create a numberformat object and use the function provided by its numberformat.format property.
Object.setPrototypeOf() - JavaScript
until engine developers address this issue, if you are concerned about performance, you should avoid setting the [[prototype]] of an object.
String.prototype.concat() - JavaScript
performance it is strongly recommended that the assignment operators (+, +=) are used instead of the concat() method.
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 audio codec guide - Web media technologies
for real-time streaming of audio, a lossy codec is usually required in order to ensure the flow of data can keep up with the audio playback rate regardless of network performance.
Codecs used by WebRTC - Web media technologies
performance fortunately, vp8 and avc perform similarly from an end-user perspective, and are equally adequate for use in videoconferencing and other webrtc solutions.
Media type and format guide: image, audio, and video content - Web media technologies
WebMediaFormats
handling media support issues in web content in this guide, we look at how to build web content that maximizes quality or performance while providing the broadest possible compatibility, by choosing media formats wisely, and offering fallbacks and alternate formats where it would be helpful.
Mapping the width and height attributes of media container elements to their aspect-ratio - Web media technologies
this wasn't an attractive thing for your users to see, and could also result in performance issues due to the repainting required after each image loads, hence adding the attributes being a good idea.
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 ...
Introduction to progressive web apps - Progressive web apps (PWAs)
presenting a trusted website with a good performance is a consequence of using these enhancements; this in turn means building web apps which follow better practices.
Making PWAs work offline with Service workers - Progressive web apps (PWAs)
performance-wise, you can prefetch resources that are not needed right now, but might be in the near future, so the app will be faster when you actually need those resources.
How to make PWAs re-engageable using Notifications and Push - Progressive web apps (PWAs)
there's a big collection of working examples showing general use, but also web push, caching strategies, performance, working offline, and more.
Mobile first - Progressive web apps (PWAs)
you should at least consider it as an option, especially if you are experiencing slow or laggy performance when your application is running on mobile.
The building blocks of responsive design - Progressive web apps (PWAs)
some ideas follow, which also help to keep the number of http requests down — another key factor in mobile app performance: you should try to use css3 features to programmatically generate graphical effects where possible, rather than relying on image files.
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.
numOctaves - SVG: Scalable Vector Graphics
though more octaves also require more calculations, resulting in a negative impact on performance.
order - SVG: Scalable Vector Graphics
WebSVGAttributeorder
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.
Paths - SVG: Scalable Vector Graphics
WebSVGTutorialPaths
there is no real performance penalty or bonus for using one or the other.
Subresource Integrity - Web security
how subresource integrity helps using content delivery networks (cdns) to host files such as scripts and stylesheets that are shared among multiple sites can improve site performance and conserve bandwidth.
Using custom elements - Web Components
with this optimization the performance of external and internal styles should be similar.
Using shadow DOM - Web Components
with this optimization the performance of external and internal styles should be similar.
Using the Mozilla JavaScript interface to XSL Transformations - XSLT: Extensible Stylesheet Language Transformations
rather than modifying the dom it is recommended to use stylesheet parameters which are usually easier and can give better performance.
Web technology for developers
accessibilitycss houdinicss: cascading style sheetsdemos of open web technologiesdeveloper guidesexsltevent referencehtml: hypertext markup languagehttpjavascriptmathmlopensearch description formatprivacy, permissions, and information securityprogressive web apps (pwas)svg: scalable vector graphicstutorialsweb apisweb componentsweb performanceweb app manifestsweb media technologiesweb securityweb technology referencexml: extensible markup languagexpathxslt: extensible stylesheet language transformations ...
Caching compiled WebAssembly modules - WebAssembly
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.