An approach to capturing and integrating web client Real User Measurements from the Navigation object with server-side network and HttpServer diagnostic events.
Make It Fast - Using Modern Browser Performance APIs to Monitor and Improve t...Nicholas Jansma
Make It Fast
Using Modern Browser Performance APIs to Monitor and Improve the Performance of your Web Apps.
Presented at CodeMash 2015.
Performance matters. How fast your site loads — not just on your development machine, but from your actual customers, across the globe — has a direct impact on your visitors’ happiness and conversion rate. Today’s browsers provide several new cutting-edge performance APIs that can give you Real User Metrics (RUM) of your live site’s performance. Whether you run a small blog or a top-1K site, monitoring and understanding your performance is the key to giving your visitors a better experience. We will be discussing the NavigationTiming, ResourceTiming and UserTiming performance APIs, which are available in the majority of modern browsers. You’ll walk away with a better understanding of what problem these APIs solve and how to start using them today. We’ll also go through both D.I.Y. and commercial options that utilize these APIs to help you better monitor and improve the performance of your websites.
Using Modern Browser APIs to Improve the Performance of Your Web ApplicationsNicholas Jansma
This document discusses modern browser APIs that can improve web application performance. It covers Navigation Timing, Resource Timing, and User Timing which provide standardized ways to measure page load times, resource load times, and custom events. Other APIs discussed include the Performance Timeline, Page Visibility, requestAnimationFrame for script animations, High Resolution Time for more precise timestamps, and setImmediate for more efficient script yielding than setTimeout. These browser APIs give developers tools to assess and optimize the performance of their applications.
Metrics, metrics everywhere (but where the heck do you start?)Tammy Everts
There’s no one-size-fits-all approach to metrics. In this session, Cliff Crocker and I walk through various metrics that answer performance questions from multiple perspectives — from designer and DevOps to CRO and CEO. You’ll walk away with a better understanding of your options, as well as a clear understanding of how to choose the right metric for the right audience.
Metrics, Metrics Everywhere (but where the heck do you start?)SOASTA
Not surprisingly, there’s no one-size-fits-all performance metric (though life would be simpler if there were). Different metrics will give you different critical insights into whether or not your pages are delivering the results you want — both from your end user’s perspective and ultimately from your organization’s perspective. Join Tammy Everts, and walk through various metrics that answer performance questions from multiple perspectives. You’ll walk away with a better understanding of your options, as well as a clear understanding of how to choose the right metric for the right audience.
Debugging IE Performance Issues with xperf, ETW and NavigationTimingNicholas Jansma
This document discusses using ETW/xperf and Navigation Timing to analyze website performance. It covers:
1) ETW/xperf - tools for capturing system-level event traces on Windows, which can show browser performance events.
2) Navigation Timing API - a W3C spec that provides page load timing metrics via JavaScript for real-world performance monitoring.
3) How to use these tools to analyze page load times, resource usage, and CPU hot spots, both for debugging issues and monitoring performance over time.
Velocity EU 2012 - Third party scripts and youPatrick Meenan
The document discusses strategies for loading third-party scripts asynchronously to improve page load performance. It notes that the frontend accounts for 80-90% of end user response time and recommends loading scripts asynchronously using techniques like async, defer, and loading scripts at the bottom of the page. It also discusses tools for monitoring performance when third-party scripts are blocked.
Slides for my tutorial from Velocity 2014 on some of the more advanced features in WebPagetest.
Video is available on Youtube:
Part 1: http://youtu.be/6UeRMMI_IzI
Part 2: http://youtu.be/euVYHee1f1M
Why is this ASP.NET web app running slowly?Mark Friedman
This presentation attempts to make assumptions used in popular web performance tools like YSlow and webpagetest explicit. It also looks at the NavTiming API and explores ways to capture RUM measurements and correlate them with server-side metrics.
Presentation from Velocity NYC 2014 on setting up private WebPagetest instances
Video: https://www.youtube.com/playlist?list=PLWa0Ky8nXQTaFXpT_YNvLElTEpHUyaZi4
Measuring the visual experience of website performancePatrick Meenan
This document discusses different methods for measuring website performance from both a synthetic and real-user perspective. It introduces the Speed Index metric for quantifying visual progress and compares the Speed Index of Amazon and Twitter. It also covers the Chrome resource prioritization and different challenges around visual performance metrics.
Hands on performance testing and analysis with web pagetestPatrick Meenan
WebPagetest is a tool that tests the performance of web pages from multiple locations worldwide with configurable connectivity settings. It provides metrics like page speed scores, timings, bytes transferred, and screenshots. Key features include blocking content to test impact on performance, and scripting to automate testing of rich applications. The tool has a REST API for automating tests and integrating with other tools.
This document provides an overview of service workers and how they can be used. It begins with registering a service worker script and discussing the install and activate lifecycle events. It then covers using service workers to handle fetch events to provide offline functionality by precaching resources and serving cached responses when offline. Finally, it discusses several other potential uses of service workers like custom error pages, CDN failover, prefetching, and metrics collection.
Front-End Single Point of Failure - Velocity 2016 TrainingPatrick Meenan
This document summarizes a presentation on debugging front-end performance issues. It discusses identifying single points of failure from third-party scripts and social widgets that can block loading. It recommends monitoring for failures, loading scripts asynchronously, and using a "black hole" to simulate outages for testing. Detection and mitigation of blocking third-party code is important to ensure fast page loads.
The document discusses performance testing plans for a website. It proposes using synthetic testing from 14 global locations on representative pages every 5 minutes. A new plan tests from last-mile locations on desktop and mobile with 20 daily samples. Custom timing marks will measure user experience, sent to analytics. Synthetic testing will also run in continuous integration to catch performance regressions early.
Selecting and deploying automated optimization solutionsPatrick Meenan
This document discusses various methods for automating front-end optimization. It describes how HTML rewriting solutions can optimize HTML through proxies or in-app plugins. It also discusses when certain optimizations are best done by machines versus humans. The document outlines different architectures for front-end optimization solutions, including cloud-based and on-premises options, and considers when each is most appropriate. It emphasizes the importance of testing solutions before deploying and of monitoring performance after deployment.
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...Nicholas Jansma
Boomerang is an open-source Real User Monitoring (RUM) JavaScript library used by thousands of websites to measure their visitor's experiences. The developers behind Boomerang take pride in building a reliable and performant third-party library that everyone can use without being concerned about its measurements affecting their site. We recently performed and shared an audit of Boomerang's performance, to help communicate its "cost of doing business", and in doing so we found several areas of code that we wanted to improve. We'll discuss how we performed the audit, some of the improvements we've made, how we're testing and validating our changes, and the real-time telemetry we capture for our library to ensure we're having as little of an impact as possible on the sites we're included on.
Boomerang is an open-source Real User Monitoring (RUM) JavaScript library used by thousands of websites to measure their visitor's experiences.
Boomerang runs on billions of page loads a day, either via the open-source library or as part of Akamai's mPulse RUM service. The developers behind Boomerang take pride in building a reliable and performant third-party library that everyone can use without being concerned about its measurements affecting their site.
Recently, we performed and shared an audit of Boomerang's performance, to help communicate the "cost of doing business" of including Boomerang on a page while it takes its measurements. In doing the audit, we found several areas of code that we wanted to improve and have been making continuous improvements ever since. We've taken ideas and contributions from the OSS community, and have built a Performance Lab that helps "lock in" our improvements by continuously measuring the metrics that are important to us.
We'll discuss how we performed the audit, some of the improvements we've made, how we're testing and validating our changes, and the real-time telemetry we capture on our library to ensure we're having as little of an impact as possible on the sites we're included on.
Asynchronous Web Programming with HTML5 WebSockets and JavaJames Falkner
(Talk originally given @ KCDC - http://kcdc.info ).
Over the last decade, advances in web computing have removed many of the barriers to entry for developers. New languages, frameworks, and development methodologies have kickstarted new ideas and new ways to develop web applications to make modern life easier and more efficient. WebSockets (introduced as part of HTML5) is one such technology that enables a new class of scalable, super-responsive, collaborative, and real-time web applications with a wide range of uses.
In this talk, we will first cover the basics of asynchronous web programming using WebSockets, including predecessors such as polling and long-polling, applications of WebSockets, its limitations and potential bottlenecks, and potential future improvements.
Next, we will demo and dissect a real-world use case for realtime social data analytics, using the Apache Tomcat implementation of WebSockets and the Java-based Liferay Portal Server. This will include a discussion about development of WebSocket endpoints, its lifecycle within the application container and browser, debugging WebSockets, and scalability topics.
Disrupting the application eco system with progressive web applicationsChris Love
Progressive Web Applications (PWA) is a comprehensive term describing web applications that implement a base set of browser platform features like HTTPS, Web Manifest and Service Workers. But it bleeds beyond the scope of an application's code because browsers are enabling qualified web applications to offer the same user experiences native application enjoy. This includes prominent home screen placement, push notifications, eliminated browser chrome and app store placement.
Become a Progressive Web App expert with my course: Progressive Web Apps (PWA) Beginner to Expert -> http://PWACourse.com
Performance Of Web Applications On Client MachinesCurelet Marius
Performance of Web applications on client machines. This paper refers to the performance of Web browsers and applications in general and of JavaScript code on the client machine.
By Philip Tellis and Nic Jansma
Whenever we speak of measuring web performance, we always refer to measuring static events, whether the old page-load model, the controversial above-the-fold time, or the product-specific “time to first tweet.” Each of these have their pros and cons ranging from ease of implementation to relevance to the actual user’s experience.
But a performant user experience is much more than these static events, and no methods measure the experience the user has interacting with the page after that initial event. We seldom measure the experience of the user when they spend the most time on the site (i.e., between load and unload, when they’re reading and interacting with content on the page, etc.) or ask questions like: Was scrolling smooth or janky? What about animations? Did the user click expecting something to happen but nothing did? Are too many reflows happening?
Drawing on their work on boomerang, Philip Tellis and Nic Jansma explore new methods of measuring web performance as it relates to continuous interactions between the user and a page.
Forensic Tools for In-Depth Performance InvestigationsNicholas Jansma
Boomerang is a JavaScript library that gathers performance metrics of page loads. When a customer saw periods where nothing progressed on their site, forensic tools were used to investigate. WebPageTest reproduced the issue, and tcpdump, Wireshark, and Chrome Tracing helped dive deeper. Tests showed the problem was not related to Boomerang. Other scenarios involved issues with ready state changes and prematurely expiring CSRF tokens. Various tools like the browser dev tools, Fiddler, and Node.js were used to reproduce problems and validate fixes.
The document provides tips for optimizing web page performance based on Yahoo's YSlow guidelines. It discusses 12 tips, including making fewer HTTP requests, using a content delivery network, adding expires headers, gzipping components, putting CSS at the top, moving scripts to the bottom, avoiding CSS expressions, making JavaScript and CSS external, reducing DNS lookups, minifying JavaScript, avoiding redirects, and removing duplicate scripts. It also discusses optimizing JavaScript performance through choosing optimal algorithms and data structures, refactoring code, minimizing DOM interactions, and using local optimizations. Measurement of performance is recommended at each stage of the optimization process.
Building Next Generation Real-Time Web Applications using WebsocketsNaresh Chintalcheru
This document discusses real-time web applications and the technologies needed to enable them. It describes how HTTP is half-duplex and led to hacks like long polling to simulate real-time behavior. The WebSocket protocol provides full-duplex communications by upgrading the HTTP handshake. This allows real-time messaging over a single connection. The document also covers asynchronous programming, event-driven architectures, and frameworks like Spring that support WebSockets and asynchronous APIs.
The document discusses Google App Engine (GAE) and its support for PHP. It provides an overview of GAE and PHP, including supported PHP extensions, tools, and how to connect to Google Cloud SQL and Cloud Storage from PHP applications. It also discusses other GAE services like Memcache, task queues, logging, and cron jobs. The document concludes with examples of applications that can be developed with GAE PHP and limitations to be aware of.
This document discusses how to get the most out of the webpagetest.org tool for testing website performance. It provides an overview of the metrics webpagetest measures like load times, bandwidth usage, and script execution. The document also shares links to examples of using scripting commands to test service workers and customizing domain names. Additionally, it promotes Patrick Meenan's GitHub projects for Cloudflare Workers that can optimize sites and mentions the bulk testing feature on webpagetest.org.
We will talk about using websockets as our primary method for consuming APIs and show the advantages and disadvantages of websockets over AJAX requests and how can we use them with ASP.NET Web API.
This document provides an overview of ASP.NET, including its history and key features. It discusses how ASP.NET is an improvement over classic ASP as it is compiled, provides richer tooling support and framework. ASP.NET MVC and Web API are introduced as alternative frameworks that allow building web applications and services in a more RESTful way. The document also covers HTTP fundamentals and how ASP.NET applications integrate with IIS web servers, including how to create virtual directories.
ASP.NET Best Practices - Useful Tips from the TrenchesHabeeb Rushdan
This document outlines an ASP.NET best practices presentation, including an introduction to ASP.NET, demonstrations of best practices like using object browsers and handling page events, and tips on state management, exceptions, and AJAX. The target audience is programmers new to .NET development and existing ASP.NET developers. The presentation covers the ASP.NET page lifecycle, separation of concerns using multiple projects, and disabling viewstate where possible. Useful resources like MSDN and CodeProject are also listed.
Presentation from Velocity NYC 2014 on setting up private WebPagetest instances
Video: https://www.youtube.com/playlist?list=PLWa0Ky8nXQTaFXpT_YNvLElTEpHUyaZi4
Measuring the visual experience of website performancePatrick Meenan
This document discusses different methods for measuring website performance from both a synthetic and real-user perspective. It introduces the Speed Index metric for quantifying visual progress and compares the Speed Index of Amazon and Twitter. It also covers the Chrome resource prioritization and different challenges around visual performance metrics.
Hands on performance testing and analysis with web pagetestPatrick Meenan
WebPagetest is a tool that tests the performance of web pages from multiple locations worldwide with configurable connectivity settings. It provides metrics like page speed scores, timings, bytes transferred, and screenshots. Key features include blocking content to test impact on performance, and scripting to automate testing of rich applications. The tool has a REST API for automating tests and integrating with other tools.
This document provides an overview of service workers and how they can be used. It begins with registering a service worker script and discussing the install and activate lifecycle events. It then covers using service workers to handle fetch events to provide offline functionality by precaching resources and serving cached responses when offline. Finally, it discusses several other potential uses of service workers like custom error pages, CDN failover, prefetching, and metrics collection.
Front-End Single Point of Failure - Velocity 2016 TrainingPatrick Meenan
This document summarizes a presentation on debugging front-end performance issues. It discusses identifying single points of failure from third-party scripts and social widgets that can block loading. It recommends monitoring for failures, loading scripts asynchronously, and using a "black hole" to simulate outages for testing. Detection and mitigation of blocking third-party code is important to ensure fast page loads.
The document discusses performance testing plans for a website. It proposes using synthetic testing from 14 global locations on representative pages every 5 minutes. A new plan tests from last-mile locations on desktop and mobile with 20 daily samples. Custom timing marks will measure user experience, sent to analytics. Synthetic testing will also run in continuous integration to catch performance regressions early.
Selecting and deploying automated optimization solutionsPatrick Meenan
This document discusses various methods for automating front-end optimization. It describes how HTML rewriting solutions can optimize HTML through proxies or in-app plugins. It also discusses when certain optimizations are best done by machines versus humans. The document outlines different architectures for front-end optimization solutions, including cloud-based and on-premises options, and considers when each is most appropriate. It emphasizes the importance of testing solutions before deploying and of monitoring performance after deployment.
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...Nicholas Jansma
Boomerang is an open-source Real User Monitoring (RUM) JavaScript library used by thousands of websites to measure their visitor's experiences. The developers behind Boomerang take pride in building a reliable and performant third-party library that everyone can use without being concerned about its measurements affecting their site. We recently performed and shared an audit of Boomerang's performance, to help communicate its "cost of doing business", and in doing so we found several areas of code that we wanted to improve. We'll discuss how we performed the audit, some of the improvements we've made, how we're testing and validating our changes, and the real-time telemetry we capture for our library to ensure we're having as little of an impact as possible on the sites we're included on.
Boomerang is an open-source Real User Monitoring (RUM) JavaScript library used by thousands of websites to measure their visitor's experiences.
Boomerang runs on billions of page loads a day, either via the open-source library or as part of Akamai's mPulse RUM service. The developers behind Boomerang take pride in building a reliable and performant third-party library that everyone can use without being concerned about its measurements affecting their site.
Recently, we performed and shared an audit of Boomerang's performance, to help communicate the "cost of doing business" of including Boomerang on a page while it takes its measurements. In doing the audit, we found several areas of code that we wanted to improve and have been making continuous improvements ever since. We've taken ideas and contributions from the OSS community, and have built a Performance Lab that helps "lock in" our improvements by continuously measuring the metrics that are important to us.
We'll discuss how we performed the audit, some of the improvements we've made, how we're testing and validating our changes, and the real-time telemetry we capture on our library to ensure we're having as little of an impact as possible on the sites we're included on.
Asynchronous Web Programming with HTML5 WebSockets and JavaJames Falkner
(Talk originally given @ KCDC - http://kcdc.info ).
Over the last decade, advances in web computing have removed many of the barriers to entry for developers. New languages, frameworks, and development methodologies have kickstarted new ideas and new ways to develop web applications to make modern life easier and more efficient. WebSockets (introduced as part of HTML5) is one such technology that enables a new class of scalable, super-responsive, collaborative, and real-time web applications with a wide range of uses.
In this talk, we will first cover the basics of asynchronous web programming using WebSockets, including predecessors such as polling and long-polling, applications of WebSockets, its limitations and potential bottlenecks, and potential future improvements.
Next, we will demo and dissect a real-world use case for realtime social data analytics, using the Apache Tomcat implementation of WebSockets and the Java-based Liferay Portal Server. This will include a discussion about development of WebSocket endpoints, its lifecycle within the application container and browser, debugging WebSockets, and scalability topics.
Disrupting the application eco system with progressive web applicationsChris Love
Progressive Web Applications (PWA) is a comprehensive term describing web applications that implement a base set of browser platform features like HTTPS, Web Manifest and Service Workers. But it bleeds beyond the scope of an application's code because browsers are enabling qualified web applications to offer the same user experiences native application enjoy. This includes prominent home screen placement, push notifications, eliminated browser chrome and app store placement.
Become a Progressive Web App expert with my course: Progressive Web Apps (PWA) Beginner to Expert -> http://PWACourse.com
Performance Of Web Applications On Client MachinesCurelet Marius
Performance of Web applications on client machines. This paper refers to the performance of Web browsers and applications in general and of JavaScript code on the client machine.
By Philip Tellis and Nic Jansma
Whenever we speak of measuring web performance, we always refer to measuring static events, whether the old page-load model, the controversial above-the-fold time, or the product-specific “time to first tweet.” Each of these have their pros and cons ranging from ease of implementation to relevance to the actual user’s experience.
But a performant user experience is much more than these static events, and no methods measure the experience the user has interacting with the page after that initial event. We seldom measure the experience of the user when they spend the most time on the site (i.e., between load and unload, when they’re reading and interacting with content on the page, etc.) or ask questions like: Was scrolling smooth or janky? What about animations? Did the user click expecting something to happen but nothing did? Are too many reflows happening?
Drawing on their work on boomerang, Philip Tellis and Nic Jansma explore new methods of measuring web performance as it relates to continuous interactions between the user and a page.
Forensic Tools for In-Depth Performance InvestigationsNicholas Jansma
Boomerang is a JavaScript library that gathers performance metrics of page loads. When a customer saw periods where nothing progressed on their site, forensic tools were used to investigate. WebPageTest reproduced the issue, and tcpdump, Wireshark, and Chrome Tracing helped dive deeper. Tests showed the problem was not related to Boomerang. Other scenarios involved issues with ready state changes and prematurely expiring CSRF tokens. Various tools like the browser dev tools, Fiddler, and Node.js were used to reproduce problems and validate fixes.
The document provides tips for optimizing web page performance based on Yahoo's YSlow guidelines. It discusses 12 tips, including making fewer HTTP requests, using a content delivery network, adding expires headers, gzipping components, putting CSS at the top, moving scripts to the bottom, avoiding CSS expressions, making JavaScript and CSS external, reducing DNS lookups, minifying JavaScript, avoiding redirects, and removing duplicate scripts. It also discusses optimizing JavaScript performance through choosing optimal algorithms and data structures, refactoring code, minimizing DOM interactions, and using local optimizations. Measurement of performance is recommended at each stage of the optimization process.
Building Next Generation Real-Time Web Applications using WebsocketsNaresh Chintalcheru
This document discusses real-time web applications and the technologies needed to enable them. It describes how HTTP is half-duplex and led to hacks like long polling to simulate real-time behavior. The WebSocket protocol provides full-duplex communications by upgrading the HTTP handshake. This allows real-time messaging over a single connection. The document also covers asynchronous programming, event-driven architectures, and frameworks like Spring that support WebSockets and asynchronous APIs.
The document discusses Google App Engine (GAE) and its support for PHP. It provides an overview of GAE and PHP, including supported PHP extensions, tools, and how to connect to Google Cloud SQL and Cloud Storage from PHP applications. It also discusses other GAE services like Memcache, task queues, logging, and cron jobs. The document concludes with examples of applications that can be developed with GAE PHP and limitations to be aware of.
This document discusses how to get the most out of the webpagetest.org tool for testing website performance. It provides an overview of the metrics webpagetest measures like load times, bandwidth usage, and script execution. The document also shares links to examples of using scripting commands to test service workers and customizing domain names. Additionally, it promotes Patrick Meenan's GitHub projects for Cloudflare Workers that can optimize sites and mentions the bulk testing feature on webpagetest.org.
We will talk about using websockets as our primary method for consuming APIs and show the advantages and disadvantages of websockets over AJAX requests and how can we use them with ASP.NET Web API.
This document provides an overview of ASP.NET, including its history and key features. It discusses how ASP.NET is an improvement over classic ASP as it is compiled, provides richer tooling support and framework. ASP.NET MVC and Web API are introduced as alternative frameworks that allow building web applications and services in a more RESTful way. The document also covers HTTP fundamentals and how ASP.NET applications integrate with IIS web servers, including how to create virtual directories.
ASP.NET Best Practices - Useful Tips from the TrenchesHabeeb Rushdan
This document outlines an ASP.NET best practices presentation, including an introduction to ASP.NET, demonstrations of best practices like using object browsers and handling page events, and tips on state management, exceptions, and AJAX. The target audience is programmers new to .NET development and existing ASP.NET developers. The presentation covers the ASP.NET page lifecycle, separation of concerns using multiple projects, and disabling viewstate where possible. Useful resources like MSDN and CodeProject are also listed.
This document provides an introduction and overview of ASP.NET, including what ASP.NET is, how it differs from ASP, ASP.NET files and how ASP.NET works. It describes the ASP.NET lifecycle and architecture. It also discusses ASP.NET page structure, development models including web forms and MVC, and provides examples of ASP.NET code. Key features and potential drawbacks of ASP.NET are summarized.
The document provides an introduction to ASP.NET, including what ASP is, how ASP.NET builds on ASP, and the key benefits and components of ASP.NET. It discusses how ASP.NET web applications are executed via HTTP requests and responses, and how code is separated from presentation using code-behind files. It also summarizes the basic steps to create a simple ASP.NET application in Visual Studio.
This document provides an overview of server-side ASP.NET technologies. It compares ASP.NET to PHP, discusses the problems with classic ASP that ASP.NET aimed to address, and outlines key ASP.NET concepts like the .NET Framework, ASPX files and code-behind files, page lifecycle, controls, state management, and configuration files. The document also covers ASP.NET execution process, advantages over classic ASP, and references additional resources for further information.
This document provides an overview of e-commerce and ASP.NET. It defines e-commerce as buying and selling products or services over electronic systems like the internet. It describes different e-commerce models including business-to-business, business-to-consumer, and consumer-to-consumer. It then explains what ASP.NET is and how it can be used to build dynamic web pages and applications. It provides details on ASP.NET features, controls, events, and how to pass data between pages.
Esoft Metro Campus - Diploma in Information Technology - (Module VIII) Programming with Java
(Template - Virtusa Corporate)
Contents:
Introduction to Java
Features of Java
What you can create by Java?
Start Java Programming
Creating First Java Program
Java Virtual Machine
Basic Rules to Remember
Keywords in Java
Comments in Java Programs
Printing Statements
Primitive Data Types in Java
Arithmetic Operators
Assignment Operators
Comparison Operators
Logical Operators
If Statement
If… Else Statement
If… Else if… Else Statement
Nested If Statement
While Loop
Do While Loop
For Loop
Reading User Input
Arrays
Two Dimensional Arrays
Objects and Classes
Java Classes
Java Objects
Methods with Return Value
Methods without Return Value
Method Overloading
Variable Types
Inheritance
Method Overriding
Access Modifiers
Packages
GUI Applications in Java
Java Applets
Maintaining the product is one (if not the most) expensive area of the overall product costs. Writing clean code can significantly lower these costs, making it more efficient during the initial development and results in more stable code. In this session participants will learn how to apply C# techniques in order to improve the efficiency, readability, testability and extensibility of code.
This document provides an agenda for a presentation on ASP.NET fundamentals including programming models, design goals, architecture, and CLR services. It discusses how ASP.NET unifies programming models and simplifies development. It describes the Common Language Runtime, including design goals to simplify development and deployment while providing a robust execution environment. It also summarizes CLR services like type safety, memory management, and metadata.
Esoft Metro Campus - Diploma in Web Engineering - (Module III) Coding HTML for Basic Web Designing
(Template - Virtusa Corporate)
Contents:
Introduction to HTML
HTML Versions
HTML Standards
Creating a Simple HTML Document
Document Type Declaration
Comments in HTML
HTML Attributes
Paragraphs
Line Break
Headings
Text Formatting
Font Formatting
Images
Hyperlinks
Page Body
Lists
Tables
Cell Merging in a Table
Table Attributes
Horizontal Rule
Iframes
HTML Blocks
Division
Span
Audio
Video
Youtube Videos
Forms and Input
Introduction to CSS
Advantages of Using CSS
CSS Syntax
CSS Comments
How to Insert CSS?
CSS Tag, ID and Class Selectors
Grouping and Nesting Selectors
CSS Backgrounds
CSS Text
CSS Fonts
CSS Links
CSS Lists
CSS Tables
CSS Box Model
CSS Dimension
CSS Display - Block and Inline
CSS Positioning
CSS Float
CSS Alignment
Navigation Menu in CSS
ASP.NET is a server-side web application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic websites, web applications, and web services. ASP.NET uses a compiled execution model whereby code is typically written in C# or Visual Basic .NET and compiled to bytecode that is executed by the Common Language Runtime.
Esoft Metro Campus - Diploma in Web Engineering - (Module V) Programming with JavaScript
(Template - Virtusa Corporate)
Contents:
Introduction to JavaScript
What JavaScript Can Do?
Script tag in HTML
Noscript tag in HTML
Your First JavaScript Program
JavaScript Placement in HTML File
JavaScript Syntax
JavaScript Data Types
JavaScript Variables
JavaScript Identifiers
Arithmetic Operators
String Concatenation Operators
Assignment Operators
Comparison Operators
Logical Operators
Bitwise Operators
If Statement
If… Else Statement
If… Else if… Else Statement
Switch Statement
The ? Operator
While Loop
Do While Loop
For Loop
For…in Loop
break Statement
continue Statement
Arrays
Functions
JavaScript Objects
JavaScript Scope
Strings
Regular Expressions
JavaScript Numbers
Math Object
Date and Time
JavaScript Events
Dialog Boxes
Error Handling in JavaScript
JavaScript Forms Validation
JavaScript HTML DOM
JavaScript BOM
The document provides information about Satyam Software Solutions Pvt. Ltd., including that they develop embedded systems and provide cost-effective solutions for organizations. They are developing a flexible and manageable NANO OS for sensor networks and robotics. They also offer hardware development services like microprocessor board development and custom board development.
ASP.NET is a Microsoft web technology used to create dynamic web applications and services. It allows for server-side scripting, state management, and easy updating of files while the server is running. An ASP.NET file contains HTML, XML, and scripts that are executed on the server before being returned as plain HTML. IIS (Internet Information Services) is the Microsoft web server that processes ASP.NET files. It passes ASP.NET file requests to the ASP.NET engine, which reads and executes the scripts before returning the file as HTML to the browser. Virtual directories in IIS are used to share project folders so that ASP.NET files and applications can be accessed online.
This document provides an introduction and overview of ASP.NET and Web Forms. It discusses the background of ASP and how ASP.NET was developed to address challenges with ASP. The key features of ASP.NET, including Web Forms, Web Services, and the .NET Framework are described. The document then covers the ASP.NET programming model based on controls and events, and how postbacks maintain page state without requiring additional code. It also introduces the ASP.NET object model and server-side controls.
Monitoring web application response times^lj a hybrid approach for windowsMark Friedman
This document discusses web application performance monitoring and summarization. It covers tools like YSlow for analyzing page load times, and introduces an approach using Event Tracing for Windows (ETW) to capture performance data from web applications. This includes intercepting Yahoo Boomerang beacon requests to generate ETW events with page load time measurements and other data for analysis. A Web Application Trace Explorer is demonstrated to filter and report on these events to help explore server-side event streams and web application performance.
The document discusses performance analysis of a large intranet web application called Global Projects Delivery (GPD) which was experiencing erratic response times for users. Key findings from the analysis were:
1) Most traffic occurred during morning, post-lunch, and evening peaks and was concentrated on a few frequently accessed pages like daily task updates.
2) While the application server response time was good, 98% of the total response time was spent on data transfer, indicating the network was the bottleneck.
3) Pages with multiple frames and requests slowed down data transfer rates significantly compared to simpler pages.
4) Actions recommended included redesigning pages to reduce frames and requests, relocating servers closer to users, and
The document discusses client side performance testing. It defines client side performance as how fast a page loads for a single user on a browser or mobile device. Good client side performance is important for user experience and business metrics like sales. It recommends rules for faster loading websites, and introduces the WebPageTest tool for measuring client side performance metrics from multiple locations. WebPageTest provides waterfall views, filmstrip views, packet captures and reports to analyze page load times and identify optimization opportunities.
This document discusses optimizing the client-side performance of websites. It describes how reducing HTTP requests through techniques like image maps, CSS sprites, and combining scripts and stylesheets can improve response times. It also recommends strategies like using a content delivery network, adding expiration headers, compressing components, correctly structuring CSS and scripts, and optimizing JavaScript code and Ajax implementations. The benefits of a performant front-end are emphasized, as client-side optimizations often require less time and resources than back-end changes.
Performance is the most important attribute for success of any commercial and Enterprise Software. In a client server environment, developers focus a lot on optimizing the Data and Logical Tiers. Optimization of Presentation Tier which is responsible for more than 30 % of performance is usually ignored.
The document is developed with the intension to teach the technical staff on Optimizing the Presentation Tier which significantly improves the performance of the Client Server applications.
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)Cliff Crocker
This document discusses various metrics for measuring website performance. It begins by noting that there are many metrics to consider and no single metric tells the whole story. It then discusses several key metrics for measuring different aspects of performance, including:
- Front-end metrics like start render, DOM loading/ready, and page load that can isolate front-end from back-end performance.
- Network metrics like DNS and TCP timings that provide insight into connectivity issues.
- Resource timing metrics that measure individual assets to understand impacts of third parties and CDNs.
- User timing metrics like measuring above-the-fold content that capture user experience.
It emphasizes the importance of considering real user monitoring data alongside
Metrics, metrics everywhere (but where the heck do you start?) SOASTA
This document discusses various metrics for measuring website performance and user experience. It outlines different types of metrics including:
- Network metrics like DNS resolution, TCP connection times, and time to first byte.
- Browser metrics like start render time, DOM loading/ready times, and page load times.
- Resource-level metrics obtained from the Resource Timing API like individual asset load times and response sizes.
- User-centric metrics like Speed Index, time to visible content, and metrics for single-page applications without traditional page loads.
It emphasizes the importance of measuring real user monitoring data alongside synthetic tests, and looking at higher percentiles rather than just averages due to variability in user environments and network conditions
WebAccel: Accelerating Web access for low-bandwidth hostsZhenyun Zhuang
The document describes problems with how current web browsers access web pages in low-bandwidth environments. It analyzes factors that cause large response times, such as properties of typical web pages, interactions between HTTP and TCP protocols, and impact of server-side optimizations. It proposes a new solution called WebAccel that uses three browser-side mechanisms - prioritized fetching, object reordering, and connection management - to reduce user response time in an easy-to-deploy way. Simulation results and a prototype implementation show that WebAccel brings significant performance benefits over current browsers.
Metrics, metrics everywhere (but where the heck do you start?)Tammy Everts
You want a single, unicorn metric that magically sums up the user experience, business value, and numbers that DevOps cares about, but so far, you're just not getting it. So where do you start? In this talk at the 2015 Velocity conference in Santa Clara, Cliff Crocker and I walked through various metrics that answer performance questions from multiple perspectives -- from designer and DevOps to CRO and CEO.
Metrics, Metrics Everywhere (but where the heck do you start?)SOASTA
Not surprisingly, there’s no one-size-fits-all performance metric (though life would be simpler if there were). Different metrics will give you different critical insights into whether or not your pages are delivering the results you want — both from your end user’s perspective and ultimately from your organization’s perspective. Join Tammy Everts, and walk through various metrics that answer performance questions from multiple perspectives. You’ll walk away with a better understanding of your options, as well as a clear understanding of how to choose the right metric for the right audience.
The document summarizes a seminar presentation on the World Wide Web (WWW). It discusses the basic client-server architecture of the WWW, with servers hosting documents and clients providing interfaces for users. It also covers the evolution of the WWW to include distributed services beyond just documents. Traditional web systems are described as using simple client-server models with URLs to locate documents on servers. Key aspects like HTTP, document models, and scripting technologies are summarized. Security measures for web transactions like TLS and aspects of caching, replication, and content delivery are also outlined.
Client-side web acceleration for low-bandwidth hostsZhenyun Zhuang
This document proposes client-side optimizations to reduce web page load times for users on low-bandwidth networks. It analyzes problems with how current web browsers fetch entire pages greedily without prioritizing visible content. This wastes bandwidth and increases load times. The document proposes three browser-side mechanisms: 1) prioritizing the fetching of objects visible on the initial screen over other objects, 2) reordering object fetching to better utilize bandwidth, and 3) improving connection management. Simulations show these techniques can significantly reduce user-perceived response times compared to current browsers for low-bandwidth conditions.
DevNext - Web Programming Concepts Using Asp NetAdil Mughal
This document provides an overview of web programming concepts using ASP.NET. It discusses HTTP requests and the difference between static and dynamic web pages. It also covers ASP.NET page lifecycles, client-side vs server-side processing, and state management using view state. The document includes demonstrations of ASP.NET web applications and key concepts.
This document discusses consuming web services from an Android application using SOAP and REST. It provides examples of using a SOAP client to call a .NET web service hosted on IIS and returning data in an XML envelope. It also discusses using a REST client to invoke PHP services on a web server and receive JSON responses. The document outlines the layers of the web service architecture including transport, messaging, description and discovery.
The document discusses various techniques for optimizing UI performance, including optimizing caching, minimizing round-trip times, minimizing request size, minimizing payload size, and optimizing browser rendering. Specific techniques mentioned include leveraging browser and proxy caching, minimizing DNS lookups and redirects, combining external JavaScript, minimizing cookie and request size, enabling gzip compression, and optimizing images. Profiling and heap analysis tools are also discussed for diagnosing backend performance issues.
Lessons from the Trenches: Engineering Great AJAX Experiencesgoodfriday
- The document discusses lessons learned from building rich interactive web applications using AJAX and a mash-up architecture at Microsoft Windows Live. Some key lessons included evolving the AJAX pattern to handle real-world issues, developing component models, managing networks efficiently, and ensuring cross-browser compatibility.
- The Windows Live team adopted a mash-up philosophy where properties and experiences were composed of reusable components or "gadgets". This brought benefits like more efficient development and ability to quickly integrate services.
- Building robust, interactive web applications requires patterns for areas like asynchronous client-side page composition, component integration, theme management, and handling unreliable networks and security issues. The document outlines various approaches and best practices.
The document discusses lessons learned from building rich web applications using AJAX technologies at Microsoft. Key points include:
- They evolved the traditional AJAX pattern to address challenges of building robust, interactive applications. This included defining programming patterns and a component model.
- Their "mash-up" architecture, based on reusable gadget components, provided many benefits including more efficient development and ability to reuse components across properties.
- Building applications as collections of components rather than monolithic pages improved caching, reusability, and the ability to asynchronously deploy updates.
- Managing the network, security, and other challenges was critical for building reliable, interactive experiences.
This document provides an outline and details for a course on Internet Programming. It includes sections on course details, programming and the web, programming versus scripting, serving HTML pages, web servers, accessing databases, web applications, Ajax, HTML tags, and references. The lecturer is Eng. Mohammed Hussein from Thamar University in Yemen.
PS provides metrics on user experience for pages on mobile and desktop. It offers both lab and field data, with lab data from a controlled environment useful for debugging, and field data capturing real-world user experience. Field data comes from Chrome User Experience Report and includes metrics like First Contentful Paint. Lab data uses Lighthouse to analyze pages for performance and other categories like accessibility. Field and lab data can differ due to variability in networks, devices, and other conditions between real users and simulations.
This document is a curriculum vitae for Chandan Kumar that outlines his professional experience and qualifications. He has over 10 years of experience in software development using technologies like ASP.NET, C#, SQL Server, and Angular. Some of his responsibilities have included requirement gathering, database design, solution design, and acting as a project lead or technical lead on various projects for clients like Zensar Technologies and Indigo. He also lists his education qualifications and certifications in areas like .NET development.
Best web hosting Vancouver 2025 for you businesssteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
Reliable Vancouver Web Hosting with Local Servers & 24/7 Supportsteve198109
Looking for powerful and affordable web hosting in Vancouver? 4GoodHosting offers premium Canadian web hosting solutions designed specifically for individuals, startups, and businesses across British Columbia. With local data centers in Vancouver and Toronto, we ensure blazing-fast website speeds, superior uptime, and enhanced data privacy—all critical for your business success in today’s competitive digital landscape.
Our Vancouver web hosting plans are packed with value—starting as low as $2.95/month—and include secure cPanel management, free domain transfer, one-click WordPress installs, and robust email support with anti-spam protection. Whether you're hosting a personal blog, business website, or eCommerce store, our scalable cloud hosting packages are built to grow with you.
Enjoy enterprise-grade features like daily backups, DDoS protection, free SSL certificates, and unlimited bandwidth on select plans. Plus, our expert Canadian support team is available 24/7 to help you every step of the way.
At 4GoodHosting, we understand the needs of local Vancouver businesses. That’s why we focus on speed, security, and service—all hosted on Canadian soil. Start your online journey today with a reliable hosting partner trusted by thousands across Canada.
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingsteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
Monitoring web application response times, a new approach
1. Mark Friedman
Demand Technology Software
[email protected]
http://performancebydesign.blogspot.com
1
Why is this web app running slowly?
2. Main Topics
Building scalable web applications
YSlow scalability model of web page composition
Page Load Time and Round trips
W3C Nav/Timing API
Google Analytics & RUM
An ETW-based approach to web application performance monitoring
plus, sprinkle in some case studies & best practices
2
3. Themes:
The Value of Response Time measurements
Service Level reporting
Application response time measurements correlate with measures of customer
productivity & satisfaction
Queuing models, decomposition & other analytic techniques
Obstacles:
Measurement data missing from standard Windows ASP.NET counters, but it is available
from other sources
Request-Response boundaries are blurred in many AJAX applications
Understanding how to set good response time objectives
Since human beings are adaptable &
“ Good” and “Bad” are often relative to the application context
See “Engineering Time,” by Dr. Steve Seow
3
4. Themes:
Web application programming models and fashion change faster than
tools can adapt
AJAX
e.g., Auto-complete in Google Search
achieved using client-side Javascript & Asysnchronous Http web service Requests
High Availability and Scalability using n-tiered architectures
typically, a Presentation Layer, Business Objects layer, and a Data Access Layer
HTML5
Effective performance tools are usually one or two releases behind emerging
technology
4
5. Fundamental concept in software performance engineering (SPE)
namely, f(x),
such that f(x) reliably predicts Response time.
Factors can be
linear (m+n…)
mutliplicative (m * n)
exponential (mn)
5
8. Developed using ASP.NET (Server-side controls)
Multiple tiers: presentation/business objects/data layer
Uses the Model-View-Controller (MVC) pattern
Key elements of the web Page
data-rich Charting component (.NET Chart, based on the Dundas component)
Chart definition used to generate the PDB Query and the results are mapped to a Chart
instance
Library of Chart templates
Machine selection
Date/Time selection
8
10. Based on the influential work of Steve Souders*
originally at Yahoo
since migrated to Google
Google Chrome extension
Rule-based
Influenced:
Chrome PageSpeed Insights
IE Developer Tools
Fiddler
Glimpse
etc.
* High Performance Web Sites, O’Reilly Media, 2007
10
11. Optimize for Page Load Time
Request.Start DOM.Complete
Make specific recommendations on how to improve Page Load Time for a
specific web page
Inventorying the Document Object Model (DOM) after the composition &
rendering the of web page:
Calculate # of Http objects and their size
Does not attempt to actually measure Page Load Time, however.
Lead to a standardization effort to wire performance timing data to the
DOM & create a consistent way to access it
Navigation Time, Performance Timing & a High Resolution Clock
11
12. 12
Http GET Request (Uri)
Web Browser Http Server
Compose
&
Render
Http RESPONSE
Note: Http is a sessionless protocol
15. Http GET Request (Uri)
Response message often contains embedded references to additional
resources needed to render the Page
e.g.,
image files
style sheets
javascript files
15
Web Browser Http Server
Compose & Render
Http RESPONSE
16. Http GET Request (Uri)
HTTP interacts with the underlying TCP/IP networking protocols
HTTP Response messages > Ethernet packet size (~ 1500 bytes) require
multiple IP packets
With large cookies and a large number of parms, GET Request messages
can even exceed the Ethernet packet size
16
Web Browser Http Server
Compose & Render
Http RESPONSE
17. YSlow scalability model:
assuming web client processing time is minimal, then
Render Time RoundTrips * RTT
풏 풉풕풕풑푶풃풋풆풄풕푺풊풛풆풊
RoundTrips = 풊=ퟏ
풑풂풄풌풆풕풔풊풛풆
17
19. YSlow scalability model:
Browser Render Time RoundTrips * RTT
Web Browser performs page composition using the Document Object
Model, or DOM
YSlow Rule: Make fewer HTTP requests
YSlow Rule: Improve cache effectiveness
YSlow Rule: Reduce the number of DOM elements
YSlow Rule: Compress the objects the page does need to load
Tuning is a process that attempts to drive
# RoundTrips 1
RoundTripTime 0
19
20. YSlow never actually measures RTT, but other related tools can
RTT may vary across Requests
Objects can be geographically dispersed
Local cluster, remote, cloud
e.g., referencing 3rd-party, advertising services
TCP adaptive window scaling and other network congestion avoidance strategies
Ignores variability in the execution time of client and server-side code
e.g., sort() a large list of elements, or
a hi-res visualization component that scales nonlinearly with the size of the result
set
Compression recommendations can be at odds with good code
maintainability practices
20
21. Web Browsers create multiple TCP sessions to download referenced
objects in parallel
YSlow Rule: take advantage of parallel sessions by loading scripts last
Accurate rendering of the DOM requires that downloading a Javascript file blocks
parallel downloads
Script may add elements to the DOM dynamically, call other scripts or reference additional
resources
Browser assumes DOM rendering can only resume after the Javascript code executes
Page Load Time = Browser Render Time +
Script execution Time +
(RoundTrips * RTT)/Sessions
21
22. Despite the many complications, the YSlow scalability model has
proved very influential
Browser Page Load Time is an end-to-end measurement of service time,
which is apt to be correlated with customer satisfaction
see, for example, http://www.slideshare.net/Strangeloopnet/37-lessons-ive-learned-
on-the-performance-front-lines
Inspired development of related tools to measure Page Load Time
22
23. The YSlow scalability model is useful, but it is not
adequate for many web applications
23
24. Page Load time is a measure of end-to-end
response time
Navigation Timing measurements decompose overall
response time into Network, Server, and Client (i.e., web
browser) components
YSlow is silent:
the scalability of server-side components
the diversity of web client hardware (PCs, tablets,
phones) & software (iOS, Android, Windows)
the performance of the client’s network connection
e.g., Internet vs. Intranet connections
24
25. Despite the many complications, the YSlow scalability model has
proved very influential
Sparked a standardization effort so Javascript developers could access the PLT
measurements reliably across Browsers
Creation of standard DOM performance objects that are accessible to
Javascript
Finally, now that actual web application performance data is available in the
web browser, how do I get that data back to my data center for optimization &
capacity planning?
25
27. Http Request/Response and Rendering events
Web Performance Working Group
Performance Timeline, Navigation Timing, and
High Resolution Time specs
Supported in IE, Chrome, WebKit, and FoxFire
Event timings can be use to calculate:
Network latency (from the standpoint of the web client)
Page Render time (once the page components are received
from the server)
Entire sequence from navigation to page load completion:
Navigation Timing spec: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html#processing-model 27
31. see https://developer.mozilla.org/
31
<html>
<head>
<script type="text/javascript">
// Add load event listener.
window.addEventListener("load", loadTime, false);
function loadTime() {
// Get current time.
var now = window.performance.now();
// Calculate page load time.
var page_load_time = now - performance.timing.navigationStart;
// Write the load time to the F12 console.
if (window.console) console.log(page_load_time);
}
</script>
</head><body>
<!- Main page body is here. --> </body>
</html>
32. Now that actual web application performance data is available in the web
browser, how do I get that data back from the web client?
What about the volume of measurement data that requires processing & analysis?
Google Analytics uses web beacons to send the response time data to
Google’s data center for analysis and reporting
Yahoo Boomerang project can be used to send web beacons with the data
back to your data center
32
33. Architecture of an ASP.NET application
Windows OS
TCP/IP
(Clustered) IIS front end Web Servers
ASP.NET
.NET CLR
ADO.NET (data layer)
33
34. Dynamic HTML is session-oriented behavior layered on top of the
HTTP
Web applications require state
Who you are
Where you are (mobile apps)
They preserve state:
During a session
TCP protocol is session-oriented
Requires a connection
Calculates RTT per connection (used in re-try logic)
Between sessions (using cookies, etc.)
34
35. Server-side Request processing
Event-oriented programming model (Postback)
HttpContext wrapper around the HTTP Request
Persistent State
ViewState
Session State
Application and Page Cache objects
etc.
35
36. 36
IIS Architecture
User
Kernel
Windows
Authentication
SSL
HTTP
TCP
IP
Network
Inter face
IIS
Administration
Metabase
FTP
SMTP
NNTP
HTTP Kernel Mode
Dr iver
(http.sys)
Application Pool
http
Default.aspx
<code-behind>.dll
Mscoree.dll
Application Pool
Default.aspx
<code-behind>.dll
Mscoree.dll
HTTP Response Cache
(Physical Memory)
LSSAS
Inetinfo
W3SVC
SVCHOST
W3wp
W3wp
W3wp
W3wp
WAS
Cache
net.tcp net.tcp
http
38. w3wp.exe
Common Language Runtime (CLR)
JIT compiler
Garbage Collection threads
mscoree.dll
MyApp.dll mscorsvr.dll
38
39. Many, many Windows components are
instrumented with ETW
Kernel objects include disk IO, process, thread,
paging, CPU
TCP/IP, HttpServer, CLR
Providers may issue a current status Rundown
CallStacks can be captured
Event correlation:
CPU ID, Process ID, Thread ID, File Handle, Tcp
Session ID (Port)
39
40. Many obstacles to using trace-based instrumentation effectively in
performance investigations
Sheer volume of trace data that can be generated (e.g., OS Dispatcher ContextSwitch
events)
Cannot always be filtered effectively
Very little documentation on specific events and how they are logically related
Inconsistent semantics (but only a few common patterns)
Sequence: Begin, Step, End
StateChange(oldState, newState)
Fork:Join
Send:Receive
etc.
40
41. Resource Monitor
Windows Performance tools (aka xperf)
VS Profiler’s Concurrency Visualizer
inspired by Rico Mariani’s ETLStackBrowser program
leveraged Vance Morrison’s TraceEvent .NET libray
and, introducing the Web Application Trace Explorer
Gathers, analyzes, filters & reports on server-side events from TcpIP, HttpServer, and
instrumented application Scenarios, plus Boomerang Beacon data from web clients
Designed to help explore the semantics of these sparsely documented event streams
41
47. Boomerang beacon support
Add the boomerang.js script to your web page HTML:
47
<script src="javascriptBoomerangboomerang.js" type="text/javascript"></script>
<script src="javascriptBoomerangplug-insnavtiming.js" type="text/javascript"></script>
<script lang="javascript">
BOOMR.init({
beacon_url: "boomerang.gif"
});
</script>
48. Boomerang beacon support
Add the BoomerangBeacon HttpModule from MeasurementWareWebServices.dll to
web.config
48
<system.webServer>
<modules>
<add name="MeasurementWareWebServices“
type="MeasurementWareWebServices.BoomerangBeacon"/>
</modules>
</system.webServer>
49. BoomerangBeacon class
derives from IHttpModule
adds an EventHandler for HttpApplication.BeginRequest
In the BeginRequest event handler,
intercepts the boomerang.gif GET Requests
parse the beacon parms
generate a MeasurementWareWeb ETW event whose payload includes
Page Load Time measurements
plus, IP Address and Tcp Port (unique session ID) of the Sender for correlation with other
HttpServer and TcpIP events
49
54. Initial stage of the work to add Boomerang beacon data to the event
collection and the displays is functionally complete
Limited ToDo List prior to release as a github Open Source project
Correlated Web client and web server measurement reports
Add the boomerang.js scripts automatically to Response messages
Contact me if your org is interested in participating
[email protected]
See my blog at http://performancebydesign.blogspot.comfor the
latest status (until it reaches the Release to github stage)
54