Talk on performance tuning .NET and SQL Server web apps, with a focus on middle tier, service, and database issues. This version of the talk does include a short discussion of client side issues, since these are becoming more important, particularly when targeting mobile devices and tablets.
SQL in the City, London, 2014: How to speed up .NET and SQL Server web appsBart Read
This is an older version of this talk, that I gave at SQL in the City, in London a couple of years back.
It's very much examples based and shows the tools and techniques you'll need to use to hunt down performance problems in .NET and SQL Server web applications.
I have more up to date versions of this talk and, in particular, would suggest you check out the extended edition that I tend to give at user groups. This includes a section on memory management, which doesn't fit into the 50-60 minutes normally allocated for a conference slot.
SPS Kansas City - Gathering requirements and building taxonomy - November 2013Ruven Gotz
This document contains the slides from a presentation by Ruven Gotz on gathering requirements and building a taxonomy for a SharePoint implementation. The presentation covers topics such as defining requirements, avoiding "kitchen sink" projects, conducting initial discovery workshops on documents, collaboration, storage and search, building a taxonomy through activities like document inventories and mind mapping, and using tools like Balsamiq for wireframing.
SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013Ruven Gotz
Ruven Gotz gave a presentation at the 2013 Kansas City SharePoint Saturday event. He discussed the history of Microsoft Access and how Microsoft has tried to improve it over multiple versions. The latest version, Access 2013, integrates Access with SharePoint and SQL Server databases. Gotz provided a demonstration of building an app in Access Services and highlighted some of the benefits it offers, such as a consistent interface and use of SQL Server databases. However, he also noted limitations in customizing apps and the inability to interact with SharePoint lists. Gotz concluded that while Access has potential, it is not yet ready to be broadly used by end users and power users to build solutions in SharePoint.
The document discusses various options for obtaining datasets, including finding existing datasets from sources like data journalism sites, academic sites, government sites, and lists of datasets. It also discusses generating new datasets by scraping data from websites or using APIs. While APIs provide structured governed data, web scraping allows retrieving any visible data but is more complex and customizable. Factors like robots.txt files, CAPTCHAs, dynamic content, and honeypot traps must be considered for web scraping.
Client Side Performance for Back End Developers - Camb Expert Talks, Nov 2016Bart Read
Slides for a new talk - honestly, an alpha version (thanks to everyone who came for playing guinea pig) - of my client side performance talk. This is very much aimed towards back-end, or full stack developers more used to working behind the scenes, who may be less comfortable with JavaScript and other front-end performance concerns.
Extended edition: How to speed up .NET and SQL Server web apps (2 x 45 mins w...Bart Read
This talk describes the tools and techniques I use to diagnose performance problems in .NET and SQL Server web apps. The talk is based on a series of real world examples that allow you to build a picture of the sort of outside-in approach that works well for figuring out performance bottlenecks.
Often, once you've isolated the problem, the fix is fairly simple. Where I tend to find people struggle is in isolating problems in the first place so my aim here is to equip you to understand why your app is performing poorly.
Increasingly applications are becoming more complex with dependencies not just on the database (or several databases), but often other services. Infrastructure, networking, storage, and the client also increasingly have an impact nowadays, and this is something I try to emphasise throughout, giving you an overview of which tools to use in each case.
This is a longer version of the talk than I usually give so I take advantage of the extra time available to discuss an issue that many developers struggle with: memory management. Normally I have to skim over this but in this case I've gone into some depth about how memory is managed in runtimes such as the .NET CLR, the JVM, and JavaScript works. This will help you write code that works with the garbage collector rather than against it.
Client Side Performance for Back End Developers - Cambridge .NET User Group -...Bart Read
The document discusses strategies for improving client-side web performance for back-end developers. It introduces key concepts like RAIL (Response, Animation, Idle, Load), techniques for reducing JavaScript memory usage and CSS/animation performance. A major focus is on HTTP/2 and its benefits like multiplexing and server push. The presentation provides examples of tools for profiling performance and inline code samples for optimizing aspects like object pooling, deferred loading, and DNS prefetching.
This document summarizes a presentation about logging and debugging in SharePoint. It introduces the presenters, Cornelius J. van Dyk and Jason Himmelstein, and describes their backgrounds. The presentation covers traditional SharePoint logging, new logging functionality in SharePoint 2010 like configurable ULS logs and flood protection. It also discusses the developer dashboard, correlation IDs, and tools for analyzing SharePoint logs like the SharePoint Foundation Logger project.
SQL in the City, London, 2014: How to speed up .NET and SQL Server web appsBart Read
This is an older version of this talk, that I gave at SQL in the City, in London a couple of years back.
It's very much examples based and shows the tools and techniques you'll need to use to hunt down performance problems in .NET and SQL Server web applications.
I have more up to date versions of this talk and, in particular, would suggest you check out the extended edition that I tend to give at user groups. This includes a section on memory management, which doesn't fit into the 50-60 minutes normally allocated for a conference slot.
SPS Kansas City - Gathering requirements and building taxonomy - November 2013Ruven Gotz
This document contains the slides from a presentation by Ruven Gotz on gathering requirements and building a taxonomy for a SharePoint implementation. The presentation covers topics such as defining requirements, avoiding "kitchen sink" projects, conducting initial discovery workshops on documents, collaboration, storage and search, building a taxonomy through activities like document inventories and mind mapping, and using tools like Balsamiq for wireframing.
SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013Ruven Gotz
Ruven Gotz gave a presentation at the 2013 Kansas City SharePoint Saturday event. He discussed the history of Microsoft Access and how Microsoft has tried to improve it over multiple versions. The latest version, Access 2013, integrates Access with SharePoint and SQL Server databases. Gotz provided a demonstration of building an app in Access Services and highlighted some of the benefits it offers, such as a consistent interface and use of SQL Server databases. However, he also noted limitations in customizing apps and the inability to interact with SharePoint lists. Gotz concluded that while Access has potential, it is not yet ready to be broadly used by end users and power users to build solutions in SharePoint.
The document discusses various options for obtaining datasets, including finding existing datasets from sources like data journalism sites, academic sites, government sites, and lists of datasets. It also discusses generating new datasets by scraping data from websites or using APIs. While APIs provide structured governed data, web scraping allows retrieving any visible data but is more complex and customizable. Factors like robots.txt files, CAPTCHAs, dynamic content, and honeypot traps must be considered for web scraping.
Client Side Performance for Back End Developers - Camb Expert Talks, Nov 2016Bart Read
Slides for a new talk - honestly, an alpha version (thanks to everyone who came for playing guinea pig) - of my client side performance talk. This is very much aimed towards back-end, or full stack developers more used to working behind the scenes, who may be less comfortable with JavaScript and other front-end performance concerns.
Extended edition: How to speed up .NET and SQL Server web apps (2 x 45 mins w...Bart Read
This talk describes the tools and techniques I use to diagnose performance problems in .NET and SQL Server web apps. The talk is based on a series of real world examples that allow you to build a picture of the sort of outside-in approach that works well for figuring out performance bottlenecks.
Often, once you've isolated the problem, the fix is fairly simple. Where I tend to find people struggle is in isolating problems in the first place so my aim here is to equip you to understand why your app is performing poorly.
Increasingly applications are becoming more complex with dependencies not just on the database (or several databases), but often other services. Infrastructure, networking, storage, and the client also increasingly have an impact nowadays, and this is something I try to emphasise throughout, giving you an overview of which tools to use in each case.
This is a longer version of the talk than I usually give so I take advantage of the extra time available to discuss an issue that many developers struggle with: memory management. Normally I have to skim over this but in this case I've gone into some depth about how memory is managed in runtimes such as the .NET CLR, the JVM, and JavaScript works. This will help you write code that works with the garbage collector rather than against it.
Client Side Performance for Back End Developers - Cambridge .NET User Group -...Bart Read
The document discusses strategies for improving client-side web performance for back-end developers. It introduces key concepts like RAIL (Response, Animation, Idle, Load), techniques for reducing JavaScript memory usage and CSS/animation performance. A major focus is on HTTP/2 and its benefits like multiplexing and server push. The presentation provides examples of tools for profiling performance and inline code samples for optimizing aspects like object pooling, deferred loading, and DNS prefetching.
This document summarizes a presentation about logging and debugging in SharePoint. It introduces the presenters, Cornelius J. van Dyk and Jason Himmelstein, and describes their backgrounds. The presentation covers traditional SharePoint logging, new logging functionality in SharePoint 2010 like configurable ULS logs and flood protection. It also discusses the developer dashboard, correlation IDs, and tools for analyzing SharePoint logs like the SharePoint Foundation Logger project.
Introduce the Big-Data data characteristic, big-data process flow/architecture, and take out an example about EKG solution to explain why we are run into big data issue, and try to build up a big-data server farm architecture. From there, you can have more concrete point of view, what the big-data is.
Building Cool Applications with WSO2 StratosLiveWSO2
The document provides an overview of building applications with WSO2 StratosLive, including creating a tenant, writing a simple "HelloWorld" web application, and things to consider when writing applications in StratosLive. Sample applications demonstrated include a Facebook unfriend app, a Salesforce data exporter, and WSO2Con feedback app. The programming API allows accessing user info, user manager, registry, caching, and JMS. Restrictions when writing apps include no file system access, socket listening, server state changes, or thread usage assumptions. The recap covers creating a tenant, a simple app, and considerations for writing apps in StratosLive.
I am very excited to share with you how to analyze text using pre-trained Machine Learning models to predict a sentiment, on-prem with SQL Server 2017 and Python. This is a SQL ML / AI deep dive to predict the sentiment.
This document provides an overview of integrating two systems using an eBonding integration. It discusses the key components of an eBonding architecture including asynchronous transactions, logical components like a properties page and web services, and considerations for data mapping, logging, and retry logic. The presentation agenda is also outlined which includes explaining eBonding, architecture, code walkthrough, and a Q&A.
When performing security assessments or participating in bug bounties, there is generally a methodology you follow when assessing source-code or performing dynamic analysis. This involves using tools, reviewing results and understanding what you should be testing for. Reviewing modern web applications can be quite challenging, and this talk will go into details on how we can automate the boring (but necessary parts) and how to set a roadmap of what should be focused on when dealing with modern JavaScript applications.
Writing less code with Serverless on AWS at OOP 2022Vadym Kazulkin
The purpose of Serverless is to focus on writing the code that delivers business value and offload undifferentiated heavy lifting to the Cloud providers or SaaS vendors of your choice. Today’s code quickly becomes tomorrow’s technical debt even if you meet the perfect decision. The less you own, the better it is from the maintainability point of view. In this talk I will go through examples of the various Serverless architectures on AWS where you glue together different Serverless managed services relying mostly on configuration, significantly reducing the amount of the code written to perform the task. Own less, build more!
SPSNYC2019 - What is Common Data Model and how to use it?Nicolas Georgeault
The document discusses the Common Data Model and Common Data Service. It provides an overview of what the Common Data Model is, how it standardizes business entities and concepts. It also discusses how the Common Data Service provides a service level agreement and business-centric approach. Examples are given of how the Common Data Model and Service can be used to build applications and integrate data across different systems using a single data model.
Measure and increase developer productivity with help of Severless by Kazulki...Vadym Kazulkin
The goal of Serverless is to focus on writing the code that delivers business value and offload everything else to your trusted partners (like Cloud providers or SaaS vendors). You want to iterate quickly and today’s code quickly becomes tomorrow’s technical debt. In this talk we will show why Serverless adoption increases the developer productivity and how to measure it. We will also go through AWS Serverless architectures where you only glue together different Serverless managed services relying solely on configuration, minimizing the amount of the code written.
AdminCamp 2018 - ApplicationInsights für AdministratorenChristoph Adler
Den aktuellen Zustand und den korrekten zukünftigen Weg für Ihre IBM Domino-Anwendungsumgebung aufzuzeigen, ist schwierig bis unmöglich, wenn Daten wie Nutzung und Design-Metriken fehlen.
Kommen Sie in diese Session und erfahren Sie, wie Ihnen ApplicationInsights (kostenfreie IBM-Version) helfen kann, diese Aufgabe zu bewältigen. Finden Sie heraus, wie Ihre eigenen Daten in einfach zu verstehende Dashboards umgewandelt werden, die die aktuelle Anwendungsnutzung, Codekomplexität, Designähnlichkeit und Transformations-Roadblocks und -möglichkeiten anzeigen. Auf Basis dieser Daten können Sie entscheiden, welche Anwendungen problemlos archiviert, neugeschrieben oder modernisiert werden sollen. Diese Session ist von und für Administratoren. Entwicklungskenntnisse werden nicht vorausgesetzt
Achieving Technical Excellence in Your Software Teams - from Devternity Peter Gfader
Our industry has a problem: We are not lacking software methodologies, programming languages, tools or frameworks but we need great software engineers.
Great software engineer teams build quality-in and deliver great software on a regular basis. The technical excellence of those engineers will help you escape the "Waterfall sandwich" and make your organization a little more agile, from the inception of an idea till they go live.
I will talk about my experiences from the last 15 years, including small software delivery teams until big financial institutions.
Why would a company like to be "agile"?
How can a company achieve that?
How can you achieve Technical Excellence in your software teams?
What developer skills are more important than languages, methods or frameworks?
This will be an interactive session with a Q&A at the end.
This document provides an overview of startup best practices including lean startup methodology, user stories, agile development practices, Git version control, metrics and analytics, and customer acquisition and retention strategies. It emphasizes frequent iteration and customer feedback to build the minimum viable product and validate business assumptions quickly.
Bot. You said bot? Let build bot then! - Laurent EllerbachITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
Writing less code with Serverless on AWS at AWS Community Day DACH 2021Vadym Kazulkin
The purpose of Serverless is to focus on writing the code that delivers business value and offload undifferentiated heavy lifting to the Cloud providers or SaaS vendors of your choice. Today’s code quickly becomes tomorrow’s technical debt even if you meet the perfect decision. The less you own, the better it is from the maintainability point of view. In this talk I will go through examples of the various Serverless architectures on AWS where you glue together different Serverless managed services relying mostly on configuration, significantly reducing the amount of the code written to perform the task. Own less, build more!
EMFcamp2022 - What if apps logged into you, instead of you logging into apps?Chris Swan
As a hacker and engineer I've been interested in identity and privacy since the dawn of the Internet and the online services it's enabled. For the past year I've been helping to build and open source The @ Platform, which inverts the usual model by giving everybody (and every thing) their own place to store data and control who (and what) has access to it. This talk will give an overview of the platform and its underlying protocol, and illustrate how it can be used to build privacy preserving apps and Internet connected things. It will also cover how the platform can be self hosted on devices like the Raspberry Pi, and how people can get involved in the open source community growing around it.
The document discusses how to effectively automate business processes using both low-code and pro-code development. It advocates categorizing use cases as green, yellow, or red based on their complexity, criticality, and compliance needs in order to determine whether low-code, guided development, or professional development is most suitable. Connectors are described as a key part of the low-code platform that allow processes to integrate various systems and "run anywhere".
Bots are all the rage these days. But if you need one that's capable of understanding your users' natural language, so it can figure out what they WANT and not just what they say, then you're going to need some pretty strong AI behind it. Come to this session to find out how you can use Node.js and Microsoft Bot Framework together with Language Understanding Intelligent Service (luis.ai) to build an intelligent bot for Skype, Slack, Facebook, SMS and more.
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
Introduce the Big-Data data characteristic, big-data process flow/architecture, and take out an example about EKG solution to explain why we are run into big data issue, and try to build up a big-data server farm architecture. From there, you can have more concrete point of view, what the big-data is.
Building Cool Applications with WSO2 StratosLiveWSO2
The document provides an overview of building applications with WSO2 StratosLive, including creating a tenant, writing a simple "HelloWorld" web application, and things to consider when writing applications in StratosLive. Sample applications demonstrated include a Facebook unfriend app, a Salesforce data exporter, and WSO2Con feedback app. The programming API allows accessing user info, user manager, registry, caching, and JMS. Restrictions when writing apps include no file system access, socket listening, server state changes, or thread usage assumptions. The recap covers creating a tenant, a simple app, and considerations for writing apps in StratosLive.
I am very excited to share with you how to analyze text using pre-trained Machine Learning models to predict a sentiment, on-prem with SQL Server 2017 and Python. This is a SQL ML / AI deep dive to predict the sentiment.
This document provides an overview of integrating two systems using an eBonding integration. It discusses the key components of an eBonding architecture including asynchronous transactions, logical components like a properties page and web services, and considerations for data mapping, logging, and retry logic. The presentation agenda is also outlined which includes explaining eBonding, architecture, code walkthrough, and a Q&A.
When performing security assessments or participating in bug bounties, there is generally a methodology you follow when assessing source-code or performing dynamic analysis. This involves using tools, reviewing results and understanding what you should be testing for. Reviewing modern web applications can be quite challenging, and this talk will go into details on how we can automate the boring (but necessary parts) and how to set a roadmap of what should be focused on when dealing with modern JavaScript applications.
Writing less code with Serverless on AWS at OOP 2022Vadym Kazulkin
The purpose of Serverless is to focus on writing the code that delivers business value and offload undifferentiated heavy lifting to the Cloud providers or SaaS vendors of your choice. Today’s code quickly becomes tomorrow’s technical debt even if you meet the perfect decision. The less you own, the better it is from the maintainability point of view. In this talk I will go through examples of the various Serverless architectures on AWS where you glue together different Serverless managed services relying mostly on configuration, significantly reducing the amount of the code written to perform the task. Own less, build more!
SPSNYC2019 - What is Common Data Model and how to use it?Nicolas Georgeault
The document discusses the Common Data Model and Common Data Service. It provides an overview of what the Common Data Model is, how it standardizes business entities and concepts. It also discusses how the Common Data Service provides a service level agreement and business-centric approach. Examples are given of how the Common Data Model and Service can be used to build applications and integrate data across different systems using a single data model.
Measure and increase developer productivity with help of Severless by Kazulki...Vadym Kazulkin
The goal of Serverless is to focus on writing the code that delivers business value and offload everything else to your trusted partners (like Cloud providers or SaaS vendors). You want to iterate quickly and today’s code quickly becomes tomorrow’s technical debt. In this talk we will show why Serverless adoption increases the developer productivity and how to measure it. We will also go through AWS Serverless architectures where you only glue together different Serverless managed services relying solely on configuration, minimizing the amount of the code written.
AdminCamp 2018 - ApplicationInsights für AdministratorenChristoph Adler
Den aktuellen Zustand und den korrekten zukünftigen Weg für Ihre IBM Domino-Anwendungsumgebung aufzuzeigen, ist schwierig bis unmöglich, wenn Daten wie Nutzung und Design-Metriken fehlen.
Kommen Sie in diese Session und erfahren Sie, wie Ihnen ApplicationInsights (kostenfreie IBM-Version) helfen kann, diese Aufgabe zu bewältigen. Finden Sie heraus, wie Ihre eigenen Daten in einfach zu verstehende Dashboards umgewandelt werden, die die aktuelle Anwendungsnutzung, Codekomplexität, Designähnlichkeit und Transformations-Roadblocks und -möglichkeiten anzeigen. Auf Basis dieser Daten können Sie entscheiden, welche Anwendungen problemlos archiviert, neugeschrieben oder modernisiert werden sollen. Diese Session ist von und für Administratoren. Entwicklungskenntnisse werden nicht vorausgesetzt
Achieving Technical Excellence in Your Software Teams - from Devternity Peter Gfader
Our industry has a problem: We are not lacking software methodologies, programming languages, tools or frameworks but we need great software engineers.
Great software engineer teams build quality-in and deliver great software on a regular basis. The technical excellence of those engineers will help you escape the "Waterfall sandwich" and make your organization a little more agile, from the inception of an idea till they go live.
I will talk about my experiences from the last 15 years, including small software delivery teams until big financial institutions.
Why would a company like to be "agile"?
How can a company achieve that?
How can you achieve Technical Excellence in your software teams?
What developer skills are more important than languages, methods or frameworks?
This will be an interactive session with a Q&A at the end.
This document provides an overview of startup best practices including lean startup methodology, user stories, agile development practices, Git version control, metrics and analytics, and customer acquisition and retention strategies. It emphasizes frequent iteration and customer feedback to build the minimum viable product and validate business assumptions quickly.
Bot. You said bot? Let build bot then! - Laurent EllerbachITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
Writing less code with Serverless on AWS at AWS Community Day DACH 2021Vadym Kazulkin
The purpose of Serverless is to focus on writing the code that delivers business value and offload undifferentiated heavy lifting to the Cloud providers or SaaS vendors of your choice. Today’s code quickly becomes tomorrow’s technical debt even if you meet the perfect decision. The less you own, the better it is from the maintainability point of view. In this talk I will go through examples of the various Serverless architectures on AWS where you glue together different Serverless managed services relying mostly on configuration, significantly reducing the amount of the code written to perform the task. Own less, build more!
EMFcamp2022 - What if apps logged into you, instead of you logging into apps?Chris Swan
As a hacker and engineer I've been interested in identity and privacy since the dawn of the Internet and the online services it's enabled. For the past year I've been helping to build and open source The @ Platform, which inverts the usual model by giving everybody (and every thing) their own place to store data and control who (and what) has access to it. This talk will give an overview of the platform and its underlying protocol, and illustrate how it can be used to build privacy preserving apps and Internet connected things. It will also cover how the platform can be self hosted on devices like the Raspberry Pi, and how people can get involved in the open source community growing around it.
The document discusses how to effectively automate business processes using both low-code and pro-code development. It advocates categorizing use cases as green, yellow, or red based on their complexity, criticality, and compliance needs in order to determine whether low-code, guided development, or professional development is most suitable. Connectors are described as a key part of the low-code platform that allow processes to integrate various systems and "run anywhere".
Bots are all the rage these days. But if you need one that's capable of understanding your users' natural language, so it can figure out what they WANT and not just what they say, then you're going to need some pretty strong AI behind it. Come to this session to find out how you can use Node.js and Microsoft Bot Framework together with Language Understanding Intelligent Service (luis.ai) to build an intelligent bot for Skype, Slack, Facebook, SMS and more.
Similar to DDD 2016: How to speed up .NET and SQL Server web apps (Reading, UK) (20)
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Paul Brebner
Closing talk for the Performance Engineering track at Community Over Code EU (Bratislava, Slovakia, June 5 2024) https://eu.communityovercode.org/sessions/2024/why-apache-kafka-clusters-are-like-galaxies-and-other-cosmic-kafka-quandaries-explored/ Instaclustr (now part of NetApp) manages 100s of Apache Kafka clusters of many different sizes, for a variety of use cases and customers. For the last 7 years I’ve been focused outwardly on exploring Kafka application development challenges, but recently I decided to look inward and see what I could discover about the performance, scalability and resource characteristics of the Kafka clusters themselves. Using a suite of Performance Engineering techniques, I will reveal some surprising discoveries about cosmic Kafka mysteries in our data centres, related to: cluster sizes and distribution (using Zipf’s Law), horizontal vs. vertical scalability, and predicting Kafka performance using metrics, modelling and regression techniques. These insights are relevant to Kafka developers and operators.
Enhanced Screen Flows UI/UX using SLDS with Tom KittPeter Caitens
Join us for an engaging session led by Flow Champion, Tom Kitt. This session will dive into a technique of enhancing the user interfaces and user experiences within Screen Flows using the Salesforce Lightning Design System (SLDS). This technique uses Native functionality, with No Apex Code, No Custom Components and No Managed Packages required.
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...kalichargn70th171
In today's fiercely competitive mobile app market, the role of the QA team is pivotal for continuous improvement and sustained success. Effective testing strategies are essential to navigate the challenges confidently and precisely. Ensuring the perfection of mobile apps before they reach end-users requires thoughtful decisions in the testing plan.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESanfaltahir1010
Image: Include an image that represents the concept of precision, such as a AI helix or a futuristic healthcare
setting.
Objective: Provide a foundational understanding of precision medicine and its departure from traditional
approaches
Role of theory: Discuss how genomics, the study of an organism's complete set of AI ,
plays a crucial role in precision medicine.
Customizing treatment plans: Highlight how genetic information is used to customize
treatment plans based on an individual's genetic makeup.
Examples: Provide real-world examples of successful application of AI such as genetic
therapies or targeted treatments.
Importance of molecular diagnostics: Explain the role of molecular diagnostics in identifying
molecular and genetic markers associated with diseases.
Biomarker testing: Showcase how biomarker testing aids in creating personalized treatment plans.
Content:
• Ethical issues: Examine ethical concerns related to precision medicine, such as privacy, consent, and
potential misuse of genetic information.
• Regulations and guidelines: Present examples of ethical guidelines and regulations in place to safeguard
patient rights.
• Visuals: Include images or icons representing ethical considerations.
Content:
• Ethical issues: Examine ethical concerns related to precision medicine, such as privacy, consent, and
potential misuse of genetic information.
• Regulations and guidelines: Present examples of ethical guidelines and regulations in place to safeguard
patient rights.
• Visuals: Include images or icons representing ethical considerations.
Content:
• Ethical issues: Examine ethical concerns related to precision medicine, such as privacy, consent, and
potential misuse of genetic information.
• Regulations and guidelines: Present examples of ethical guidelines and regulations in place to safeguard
patient rights.
• Visuals: Include images or icons representing ethical considerations.
Real-world case study: Present a detailed case study showcasing the success of precision
medicine in a specific medical scenario.
Patient's journey: Discuss the patient's journey, treatment plan, and outcomes.
Impact: Emphasize the transformative effect of precision medicine on the individual's
health.
Objective: Ground the presentation in a real-world example, highlighting the practical
application and success of precision medicine.
Data challenges: Address the challenges associated with managing large sets of patient data in precision
medicine.
Technological solutions: Discuss technological innovations and solutions for handling and analyzing vast
datasets.
Visuals: Include graphics representing data management challenges and technological solutions.
Objective: Acknowledge the data-related challenges in precision medicine and highlight innovative solutions.
Data challenges: Address the challenges associated with managing large sets of patient data in precision
medicine.
Technological solutions: Discuss technological innovations and solutions
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...The Third Creative Media
"Navigating Invideo: A Comprehensive Guide" is an essential resource for anyone looking to master Invideo, an AI-powered video creation tool. This guide provides step-by-step instructions, helpful tips, and comparisons with other AI video creators. Whether you're a beginner or an experienced video editor, you'll find valuable insights to enhance your video projects and bring your creative ideas to life.
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Drona Infotech is a premier mobile app development company in Noida, providing cutting-edge solutions for businesses.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
8. A word of warning about SSMS
Read Erland Sommarskog’s post, “Slow in the application, fast in SSMS?”:
http://www.sommarskog.se/query-plan-mysteries.html
48. Locking pattern
• Reads
• A -> B -> C -> D -> A -> B -> C -> D -> E -> A …
• Etc.
• Writes
• A –> B -> C -> D -> E -> A -> B -> A -> B -> C -> D …
• Etc.
49. Solutions
• DEADLOCK_PRIORITY
• http://msdn.microsoft.com/en-us/library/ms186736.aspx
• SET DEADLOCK_PRIORITY LOW | NORMAL | HIGH
• Read Committed Snapshot Isolation
• http://www.brentozar.com/archive/2013/01/implementing-snapshot-or-
read-committed-snapshot-isolation-in-sql-server-a-guide/
• Disciplined ordering of object access
• Unit of Work Pattern
• Martin Fowler
• http://martinfowler.com/eaaCatalog/unitOfWork.html
58. Client-side Scenarios - General Observations
• Payload
• Chattiness/latency
• CSS transitions and animations
• Code execution time again becomes an issue
• Garbage
• High memory usage
With this talk I’m going to talk you through the kind of diagnostic techniques I use for isolating performance problems in .NET and SQL Server web apps.
I’m going to start off with an overview of the tools I use, and then go through some scenarios illustrating how to use them.
I’m going to focus mostly on the server side but, obviously, nowadays with the rise of the single page app, and mobile devices, the client has become a lot more important performance-wise for a good user experience.
How many of you are writing client-side code using a framework such as Angular, React, Knockout, Durandal, Ember or whatever?
How many of you are building apps that you expect people to use from mobile devices and tablets?
Obviously, particularly for these, performance and resource usage is critical. You often find you can get away with murder in desktop Chrome whereas on a phone your app runs like an absolute dog. I’ll talk about this a little at the end if there’s time.
Ideally you want to be monitoring production performance of your app using appropriate tools.
System wide:
New Relic
App Dynamics
DynaTrace
Stackify
SQL Server
SQL Monitor
Solar Winds
Spotlight
Obviously I’m going to tell you that ANTS Performance Profiler and ANTS Memory Profiler are the best for this and, on the client side, you’re obviously going to use Chrome Dev Tools, which includes some extremely good performance and memory profiling functionality. I’m not going to talk much about the client but, if we have time at the end, I’ll mention a couple of things. The problem with client side performance is the common issues are so heavily dependent on which framework you’re using (if any).
If you identify a problem with SQL you’re probably going to want to pull that out into SQL Server Management Studio and investigate in more detail, although you can now see execution plans in ANTS Performance Profiler, which arguably provides a better visualisation. The venerable SQL Profiler
I’ve included a couple of load testing tools.
Neustar
BlazeMeter
These tools allow you to script out tests where you’ll concurrency submit large numbers of requests to your site or API to investigate its scaling behaviour. The view they give you tends to be quite coarse-grained so, if you do see problems you’ll want to
These are things you really want to use pre-emptively to shake out problems on staging or UAT instances. If you find your site doesn’t scale well under load then you need to re-run your load test whilst running a detailed diagnostic tool like ANTS Performance Profiler.
Sometimes a query is just slow, in which case no worries.
Sometimes, however, it runs slow in the application but fast in SQL Server Management Studio, even with the exact same parameters used in the application.
When SQL Server first executes a query, it will create an execution plan for that query and place it in the plan cache. For stored procedures and parameterised SQL it will sniff the parameters, and use the statistics in the tables queried, to build what it thinks is the best execution plan. It obviously has no idea whether the parameters supplied are representative of normal operation.
The next time you execute the query, perhaps with different parameter values, it will reuse the cached execution plan. Perhaps it will perform well, perhaps not.
That interface for that cache is not dissimilar to an associative array. There are keys and values. The values are obviously the execution plan. Each value is accessed using a number of cache keys. These cache keys not only include the query text or stored procedure name, but also the user, and a bunch of SET options that were in force at the time the query was executed. If there is ANY mismatch SQL Server will generate a new execution plan and put that in the cache using the keys for that execution.
This explains why you see queries that run slowly in your application and yet THE EXACT SAME QUERY WITH THE EXACT SAME PARAMETERS will run fast in SQL Server Management Studio.
A detailed discussion here is beyond the scope of this talk, but do yourself two favours:
Uncheck SET ARITHABORT in SSMS
Read Erland Sommarskog’s article: http://www.sommarskog.se/query-plan-mysteries.html
Also, if you’re using parameterised queries, you must use EXEC sp_executesql N’query’, N’parameter declarations’, @param = value, …
Importantly you MUST NOT change the formatting of the SQL, not even by a single space, or you may get a different execution plan.
Remember what I said earlier: this can affect the execution plan. If something is fast in SSMS and slow in the app it means different execution plans are being used and you need to be more careful to make sure execution conditions are exactly as they are in the app.
You DON’T need to do this any more, in general, but it can still be handy if you’re just investigating slow queries from the SQL Server perspective using SQL Server profiler.
I did this for a client a while ago: first by filtering queries that were taking more than 5000ms, optimising them, then dropping the time, optimising again, etc.
It’s often worth checking Show All Columns because then you can apply more selective column filters.
Generally I tend to uncheck everything except RPC:Completed, SQL:BatchCompleted, and SQL:BatchStarting.
As I say, it’s also a good idea to apply column filters, especially if you’re running this against a production instance, so you’re not overwhelmed with data.
I tend to filter on ApplicationName, and DatabaseName, at the very least. I often filter on duration.
As you can see here, I’ve isolated an instance of my long running query, with the relevant parameter value.
Worth noting that you can save results into a trace table in SQL Server. This is literally just a database table that the profiler will write the data that it collects into. The advantage with this is that you can then use SQL to query the table anyway you like without being limited or frustrated by SQL Profiler’s slightly clunky interface. This means you can potentially be much less selective about data you collect, and therefore avoid accidentally filtering out something important. The flip side is you can end up taking up a lot of space with data in this table.
Here’s a shot showing the table that SQL Profiler has created.
So now, having found a parameter value, we need to include the execution plan.
This is a really simple example of an execution plan. As you can see, the diagram in SSMS is a bit primitive. You can also use a tool like Supratimas online to visualise your plan.
These are clearly really simple plans. The reality can often be a lot more intimidating, with dozens of nodes spewed out in a tree spanning multiple screenfuls of data.
One of the things you can do at this point is try to break down your complex query into a set of smaller queries and look at their execution plans individually. Bear in mind that you can be misled by doing this though, because you obviously won’t be seeing the original execution plan for the whole query.
Worth pointing out that one nice thing the SSMS view does is that it will often tell you where missing indexes are the problem. Do take its advice with a pinch of salt though. You may just need to add a column to an existing index rather than create a new one. If you just blindly follow its advice it’s easy to end up with a table that has 25 indexes against it, which increases storage requirements and can degrade performance on its own.
I’ve anonymised the name, but equally, I’ve given it a name that gives you a clue as to what’s going on.
I mentioned that nowadays you don’t need to go through this process in SSMS the way you used to. Here you can see a shot of ANTS Performance Profiler displaying an execution plan for a SQL query.
The profiler includes a view of SQL queries, along with how long they took, and their parameters, so you can immediately re-execute a slow query with the correct parameters and see the execution plan.
Note that to view the execution plan APP needs to re-run the query (it doesn’t collect plans automatically as this would be very expensive), so it will ask you for the database connection details, including credentials. Make sure these match those used by your application, if possible, to ensure that the same execution plan is used when the query is re-run.
I also had batch started and batch completed selected further down. It’s more information than I needed to collect but, remember, like I said earlier you can export this to a database table to make it easier to work with. Generally I’d always err on the side of too much information rather than too little just because it’s a pain if you have to go back and run another profiling session later, especially if you’re in a situation like I was where access to production infrastructure is very tightly controlled.
With this we had a query that was executing fast some of the time (see the bottom few rows) and then slow some of the time.
This was weird.
Bit of background: SQL Server running on bare metal – powerful box: 24cores, 128GB RAM. Web hosts running on VMs hosted in VMWare VSphere. 10GB connection between them; same rack in data centre.
Obvious place to start is to have a look at what’s going on on SQL Server.
Here’s the view from SQL profiler for that query. At this point I’ve created a test case isolating that query. Note that CPU, reads, writes, and duration are all consistent. Note, importantly, that duration is 0.
At this point one starts to suspect a network issue but this had already been raised with the infrastructure provider and they’d said there was very low load on the network. Well we sort of know that but, IT’S THE LATENCY, STUPID.
The problem is, of course, I have to prove this to them because they’re not going to lift a finger until I’ve done so.
Well, here’s the same query, isolated in a test case, run on the web host over and over again from Nunit with a couple of different parameters. (Note that this problem does not manifest itself on dev boxes, only in test environments and on production.) One always returns 1 row, the other 0 rows. There’s no correlation between execution time and number of rows returned. You can see in this case that the query is mostly slow, but it was sometimes fast most of the time. Very inconsistent.
At this point I wanted to run Wireshark both on the web host and on the SQL Server instance. Trouble is, every time I fired up Wireshark on the web host, the problem goes away and doesn’t come back until a reboot (apparently).
Still, I did manage to get a capture from the SQL Server host.
SQL Server has transmitted this back less than 0.25ms after the query frame is received. Thus, the problem is nothing to do with SQL Server and something to do with the connection in between the VM host and the SQL Server host.
This also explains why running Wireshark fixes the problem. It disables RSC:
https://ask.wireshark.org/questions/9074/does-wireshark-capturesupport-rsc-packets
And we weren’t the first to run into this issue:
https://ask.wireshark.org/questions/50123/win-2012-r2-vm-network-much-faster-after-wireshark-was-started
Payload matters, particularly on mobile, particularly not on WiFi.
- Do you really need that library or framework?
Do you really need those massive images, or can you use smaller ones?
Keep your APIs coarse grained to reduce chattiness. Bandwidth is often OK, even on mobile, even over 3G, but latency is more of an issue. Chatty, fine-grained protocols optimise for latency, not bandwidth, which is a bad strategy where latency is significant! It’s the latency, stupid!
CSS transitions and animations do not always work well on mobile devices; consider simplifying them for these scenarios.
Feature-based development is obviously the best way to go (e.g., modernizr.js), but you can run into problems where different platforms support the same feature but there are small implementation differences or, sometimes, large performance differences.
Actual time spent running code becomes an issue, particularly with heavyweight front-end frameworks. Angular 1.x and its two-way binding/digest cycle spring immediately to mind here, mostly because I’ve had a lot of experience with it, but all Fx have their issues. These issues become particularly acute on mobile devices, which don’t have the processing power. Problems here can be more noticeable on Android devices than on iOS – it pains me to admit it, but the JIT is simply better; plus single core performance tends to also be better on iOS.
JavaScript is a managed memory environment with garbage collection, just like .NET. In fact the implementations are remarkably similar. You probably won’t notice too many problems with garbage collection on desktop and laptops – you can get away with murder. If you have a very interactive, or just complex page, and you’re creating lots of shortlived objects, you certainly can see problems on mobile though. Again, in my experience these tend to be more obvious on Android. Object pooling can be a good strategy here.
High memory usage may never show up as a performance issue on desktop, although your users may not thank you if you have a page that swallows 100MB of memory, but on mobile this really can cause issues, particularly when coupled with creating lots of garbage, because it means the garbage collector has more memory to check – it has to work harder – when it does a full collection.
The JS Heap shows a sawtooth pattern typical of garbage collected environments. This in itself isn’t cause for concern. What IS cause for concern is the size of the teeth, which represent 5-6MB of memory consumed and freed. The way this manifests itself on Android, from the user’s perspective, is with really choppy framerate after playing the game for 30 seconds or so (usually enough to get a few levels in).