A workshop held in StartIT as part of Catena Media learning sessions.
We aim to dispel the notion that large PHP applications tend to be sluggish, resource-intensive and slow compared to what the likes of Python, Erlang or even Node can do. The issue is not with optimising PHP internals - it's the lack of proper introspection tools and getting them into our every day workflow that counts! In this workshop we will talk about our struggles with whipping PHP Applications into shape, as well as work together on some of the more interesting examples of CPU or IO drain.
London Web Performance Meetup: Performance for mortal companiesStrangeloop
You're probably familiar with the well-known performance success stories from companies like Amazon, Google, Microsoft and Shopzilla. But how relevant are these megasites to "mortal companies" that don't make billions of dollars per year or have teams of in-house performance engineers to do their bidding?
Strangeloop president Joshua Bixby walks through case studies of Strangeloop customers like AutoAnything.com and Artbeads.com to show how mortal companies have improved performance and achieved measurable success, including:
· Increased revenue by 13%
· Increased cart size by 6%
· Increased conversions by 9%
Joshua offers practical tips for successfully evangelizing performance within your organization. He also gives a snapshot of the current performance landscape in North America, as well as a sense of where the industry is headed.
An overview of web performance automation in the Production environment - "faster ways to make your website faster". Covers things like sample .htaccess files through to performance accelerators like mod_pagespeed and Aptimize through to DSA's like Cotendo.
The availability of on-demand, utility computing via the cloud introduces a new world of flexibility but also an entirely new charging model for applications. This new model has long promised to provide metered compute, charging you for exactly the amount of processing power you need, at the points that you need it.
The cloud is a large paradigm change, not just for some of the technologies involved but also for the economics and the return on investment for deploying and running a given application. Whereas traditional on-premises applications require upfront capital expenditure on hardware, cloud deployments have an ongoing operational expense. Additionally, clouds typically charge by the amount of memory used, whereas applications are typically developed and tuned to run as fast as possible using all the available (already paid for) resources.
Chris Bailey explains how this new economics of the cloud is driving changes in the way applications are architected, developed, and deployed.
Presented at the O'Reilly Software Architecture Conference, London 2017
This document discusses best practices for using WordPress in an enterprise setting. It covers topics like caching, database queries, browser performance, maintainability, security, third party code, and team workflows. The presentation was given by Taylor Lovett, who is the Director of Web Engineering at 10up and a WordPress plugin creator and core contributor.
The document discusses techniques for optimizing website performance, including making fewer HTTP requests, leveraging browser caching with cache control headers, minimizing component sizes, optimizing asset delivery through techniques like sprites and concatenation, and following front-end performance best practices. It provides examples of how major sites implement various optimizations and shares results from experiments measuring the impact of optimizations on response times.
The document discusses scalable web architectures and common patterns for scaling web applications. It covers key topics like load balancing, caching, database replication and sharding, and asynchronous queuing to distribute workloads across multiple servers. The goal of these patterns is to scale traffic, data size, and maintainability through horizontal expansion rather than just vertical upgrades.
The document discusses Flickr's use of web services and PHP. It describes how Flickr uses PHP at its core for page logic and business logic, interfacing with databases and APIs. It also discusses how Flickr scales its architecture horizontally across servers and databases to handle its large userbase and traffic.
London Web Performance Meetup: Performance for mortal companiesStrangeloop
You're probably familiar with the well-known performance success stories from companies like Amazon, Google, Microsoft and Shopzilla. But how relevant are these megasites to "mortal companies" that don't make billions of dollars per year or have teams of in-house performance engineers to do their bidding?
Strangeloop president Joshua Bixby walks through case studies of Strangeloop customers like AutoAnything.com and Artbeads.com to show how mortal companies have improved performance and achieved measurable success, including:
· Increased revenue by 13%
· Increased cart size by 6%
· Increased conversions by 9%
Joshua offers practical tips for successfully evangelizing performance within your organization. He also gives a snapshot of the current performance landscape in North America, as well as a sense of where the industry is headed.
An overview of web performance automation in the Production environment - "faster ways to make your website faster". Covers things like sample .htaccess files through to performance accelerators like mod_pagespeed and Aptimize through to DSA's like Cotendo.
The availability of on-demand, utility computing via the cloud introduces a new world of flexibility but also an entirely new charging model for applications. This new model has long promised to provide metered compute, charging you for exactly the amount of processing power you need, at the points that you need it.
The cloud is a large paradigm change, not just for some of the technologies involved but also for the economics and the return on investment for deploying and running a given application. Whereas traditional on-premises applications require upfront capital expenditure on hardware, cloud deployments have an ongoing operational expense. Additionally, clouds typically charge by the amount of memory used, whereas applications are typically developed and tuned to run as fast as possible using all the available (already paid for) resources.
Chris Bailey explains how this new economics of the cloud is driving changes in the way applications are architected, developed, and deployed.
Presented at the O'Reilly Software Architecture Conference, London 2017
This document discusses best practices for using WordPress in an enterprise setting. It covers topics like caching, database queries, browser performance, maintainability, security, third party code, and team workflows. The presentation was given by Taylor Lovett, who is the Director of Web Engineering at 10up and a WordPress plugin creator and core contributor.
The document discusses techniques for optimizing website performance, including making fewer HTTP requests, leveraging browser caching with cache control headers, minimizing component sizes, optimizing asset delivery through techniques like sprites and concatenation, and following front-end performance best practices. It provides examples of how major sites implement various optimizations and shares results from experiments measuring the impact of optimizations on response times.
The document discusses scalable web architectures and common patterns for scaling web applications. It covers key topics like load balancing, caching, database replication and sharding, and asynchronous queuing to distribute workloads across multiple servers. The goal of these patterns is to scale traffic, data size, and maintainability through horizontal expansion rather than just vertical upgrades.
The document discusses Flickr's use of web services and PHP. It describes how Flickr uses PHP at its core for page logic and business logic, interfacing with databases and APIs. It also discusses how Flickr scales its architecture horizontally across servers and databases to handle its large userbase and traffic.
Efficient Memory and Thread Management in Highly Parallel Java Applicationspkoza
This presentation discusses strategies to estimate and control the memory use of multi-threaded java applications. It includes a quick overview of how the JVM uses memory, followed by techniques to estimate the memory usage of various types of objects during testing. This knowledge is then used as the basis for a runtime scheme to estimate and control the memory use of multiple threads. The final part of the presentation describes how to implement robust handling for unchecked exceptions, especially Out Of Memory (OOM) errors, and how to ensure threads stop properly when unexpected events occur.
Node Summit 2016: Web App ArchitecturesChris Bailey
While Node.js is becoming the platform of choice for web-scale applications, enterprises are resistant to change and have legacy applications based on other technologies, typically Java. Emerging web application architectures bring together the web-scale and integrated browser characteristics of Node.js with the transactional nature of Java to deliver high-performance, engaging web applications. Learn how the complimentary characteristics of Node.js and Java are being used to build the next generation of web applications.
Twitter - Architecture and Scalability lessonsAditya Rao
Twitter faced scaling issues as its user base grew to over 350,000 users. It addressed this through caching, partitioning its database, abuse prevention techniques, and an asynchronous, event-driven architecture. Lessons included planning for scaling from the start, optimizing databases and caching, and creating an open API to power growth.
This document provides an introduction to CGI (Common Gateway Interface) programming with Perl for the web. It explains what CGI is, how it allows a web server to run server-side programs, and how the Perl CGI module handles the CGI protocol. It then provides a basic example CGI program written in Perl, called backatcha.cgi, that echoes back any parameters sent to it. It discusses some requirements for setting up and running CGI programs, like file permissions, and potential issues that could occur like errors or seeing the source code instead of output.
Adopting Java for the Serverless world at Serverless Meetup New York and BostonVadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times and high memory footprint. For both you have to pay to the cloud providers of your choice. That's why most developers tried to avoid using Java for such use cases. But the times change: Community and cloud providers improve things steadily for Java developers. In this talk we look at the features and possibilities AWS cloud provider offers for the Java developers and look the most popular Java frameworks, like Micronaut, Quarkus and Spring (Boot) and look how (AOT compiler and GraalVM native images play a huge role) they address Serverless challenges and enable Java for broad usage in the Serverless world.
The document discusses the Apache SOA stack and debunks some myths about SOA. It provides an overview of the Enterprise Service Bus (ESB) and explains why the Apache ServiceMix stack is a good choice as an ESB due to its modularity, stability, and cluster capabilities. The document also discusses how to design software and build systems for an ESB using OSGi and Maven.
Google AppEngine (GAE/J) - Introduction and Overview from a Java GuyMax Völkel
You know Java, but what is AppEngine? In this session Max will walk you from a brief introduction of Servlets to an overview of the Google AppEngine. We learn about the basics such as the data store – which is quite different from SQL -, application versions, back-ends, scheduler, instances and logging. Services such as mail, url fetch, task queue are also explained. Since we use GAE/J since 2010 in Calpano we also talk about costs and experience in practice.
With the growth of mobile devices, performance is now more important than ever. But the web is actually getting slower! Fight back by learning how to monitor performance, the critical rendering path and finding where to optimize.
This document discusses techniques for improving web performance. It begins with research on how caching and cookies impact performance. It then outlines 14 rules for optimizing performance, such as making fewer HTTP requests, using content delivery networks, gzipping components, placing scripts at the bottom of pages, and avoiding redirects. Case studies demonstrate how following these rules can significantly improve page load times. The document emphasizes starting performance improvements by focusing on front-end optimizations and advocates evangelizing best practices.
This document provides an overview of web services and introduces key concepts. It discusses how web services provide a clean separation between capabilities and user interfaces, allowing companies to expose capabilities through standardized APIs. The document then covers basic web service architectures and terminology, including the roles of XML, SOAP, WSDL, and UDDI. It also provides an example WSDL definition for a sample job submission web service.
The document provides an overview and introduction to web services. It discusses installing Tomcat and Apache Axis to develop and deploy sample web services. It also covers designing client applications to use existing web services like those from Google and Amazon. Key topics introduced include SOAP, WSDL, and how web services provide a clean separation between capabilities and user interfaces, allowing capabilities to be accessed programmatically.
This document provides tips for optimizing images for fast loading on mobile websites. It discusses how image size, quality, format, caching, and lazy loading can significantly impact performance. Specific techniques recommended include resizing images to appropriate screen sizes, using formats like WebP and SVG that compress well, lazy loading images below the fold, and adding responsive breakpoints to serve optimized images for different devices. Benchmarking tools are suggested for testing image performance in various scenarios. The overall message is that with the right optimizations, images can load quickly without sacrificing quality.
Web Performance Internals explained for Developers and other stake holders.Sreejesh Madonandy
Web Performance Internals explained for Developers and others
1. Starting with How Internet Works
2. How Browser Works
3. How to measure Web performance
4. Concluded with tips to Developers and Power users on Improving Web Performance
www.caucho.com
Using industry standard tool and methodology, Resin Pro web server was put to the test versus Nginx, a popular web server with a reputation for efficiency and performance. Nginx is known to be faster and more reliable under load than the popular Apache HTTPD. Benchmark tests between Resin and Nginx yielded competitive figures, with Resin leading with fewer errors and faster response times. In numerous and varying tests, Resin handled 20% to 25% more load while still outperforming Nginx. In particular, Resin was able to sustain fast response times under extremely heavy load while Nginx performance degraded.
Patterns and practices for building resilient serverless applicationsYan Cui
Lambda gives you multi-AZ out-of-the-box, but still, things can go wrong in production. There are region-wide outages, and performance degradation in services your function depends on can cause it to time out or error. And what if you're dealing with downstream systems that just aren't as scalable and can't handle the load you put on them? The bottom line is many things can go wrong and they often do at the worst of times. The goal of building resilient systems is not to prevent failures, but to build systems that can withstand these failures. In this talk, we will look at a number of practices and architectural patterns that can help you build more resilient serverless applications. Such as multi-region, active-active, employing DLQs and surge queues. We'll also see how we can use chaos experiments to help us identify failure modes before they manifest in production
The document discusses using queues to improve the scalability of PHP applications. It describes how queues allow asynchronous and distributed processing of tasks to improve performance and allow applications to handle more traffic. Specifically, it promotes using Zend Server's job queue to offload long-running tasks like payments processing so the frontend can scale independently of backend processing. Examples show building jobs that communicate with the queue to asynchronously execute tasks like payments.
The document provides an overview of optimisations that can be made to apps to improve performance and speed. It discusses how fast is perceived by humans, benchmarking current performance, optimising images through resizing, formatting and lazy loading, reducing payload sizes through caching and content delivery, and replacing animated GIFs with optimized video formats. The document contains tips and examples for profiling apps and making optimizations to deliver content quickly.
2019 PHP Serbia - Boosting your performance with BlackfireMarko Mitranić
We aim to dispel the notion that large PHP applications tend to be sluggish, resource-intensive and slow compared to what the likes of Python, Erlang or even Node can do. The issue is not with optimising PHP internals - it's the lack of proper introspection tools and getting them into our every day workflow that counts! In this workshop we will talk about our struggles with whipping PHP Applications into shape, as well as work together on some of the more interesting examples of CPU or IO drain.
PHP Mega Meetup, Sep, 2020, Anti patterns in phpAhmed Abdou
PHP is one of the easiest programming languages to use ever and powers more than half of the internet.
With this ease of use, certain common patterns emerge that become harmful. This is especially true when your product or service is not expected to die soon. Some anti-patterns are coding, others are related to operating your service, especially with new docker stacks. We will go over some of the most common pitfalls with a focus on enterprise development.
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...John McCaffrey
(reposting with clearer title)
Performance tuning presentation from WindyCityRails 2010.
Why performance matters
The right way to approach it
Front end testing tools
Automated testing tools
Common problems and the ways to solve them in Rails
Rails specific tools
bullet
slim_scrooge
rack bug
request log analyzer
rails indexes
Efficient Memory and Thread Management in Highly Parallel Java Applicationspkoza
This presentation discusses strategies to estimate and control the memory use of multi-threaded java applications. It includes a quick overview of how the JVM uses memory, followed by techniques to estimate the memory usage of various types of objects during testing. This knowledge is then used as the basis for a runtime scheme to estimate and control the memory use of multiple threads. The final part of the presentation describes how to implement robust handling for unchecked exceptions, especially Out Of Memory (OOM) errors, and how to ensure threads stop properly when unexpected events occur.
Node Summit 2016: Web App ArchitecturesChris Bailey
While Node.js is becoming the platform of choice for web-scale applications, enterprises are resistant to change and have legacy applications based on other technologies, typically Java. Emerging web application architectures bring together the web-scale and integrated browser characteristics of Node.js with the transactional nature of Java to deliver high-performance, engaging web applications. Learn how the complimentary characteristics of Node.js and Java are being used to build the next generation of web applications.
Twitter - Architecture and Scalability lessonsAditya Rao
Twitter faced scaling issues as its user base grew to over 350,000 users. It addressed this through caching, partitioning its database, abuse prevention techniques, and an asynchronous, event-driven architecture. Lessons included planning for scaling from the start, optimizing databases and caching, and creating an open API to power growth.
This document provides an introduction to CGI (Common Gateway Interface) programming with Perl for the web. It explains what CGI is, how it allows a web server to run server-side programs, and how the Perl CGI module handles the CGI protocol. It then provides a basic example CGI program written in Perl, called backatcha.cgi, that echoes back any parameters sent to it. It discusses some requirements for setting up and running CGI programs, like file permissions, and potential issues that could occur like errors or seeing the source code instead of output.
Adopting Java for the Serverless world at Serverless Meetup New York and BostonVadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times and high memory footprint. For both you have to pay to the cloud providers of your choice. That's why most developers tried to avoid using Java for such use cases. But the times change: Community and cloud providers improve things steadily for Java developers. In this talk we look at the features and possibilities AWS cloud provider offers for the Java developers and look the most popular Java frameworks, like Micronaut, Quarkus and Spring (Boot) and look how (AOT compiler and GraalVM native images play a huge role) they address Serverless challenges and enable Java for broad usage in the Serverless world.
The document discusses the Apache SOA stack and debunks some myths about SOA. It provides an overview of the Enterprise Service Bus (ESB) and explains why the Apache ServiceMix stack is a good choice as an ESB due to its modularity, stability, and cluster capabilities. The document also discusses how to design software and build systems for an ESB using OSGi and Maven.
Google AppEngine (GAE/J) - Introduction and Overview from a Java GuyMax Völkel
You know Java, but what is AppEngine? In this session Max will walk you from a brief introduction of Servlets to an overview of the Google AppEngine. We learn about the basics such as the data store – which is quite different from SQL -, application versions, back-ends, scheduler, instances and logging. Services such as mail, url fetch, task queue are also explained. Since we use GAE/J since 2010 in Calpano we also talk about costs and experience in practice.
With the growth of mobile devices, performance is now more important than ever. But the web is actually getting slower! Fight back by learning how to monitor performance, the critical rendering path and finding where to optimize.
This document discusses techniques for improving web performance. It begins with research on how caching and cookies impact performance. It then outlines 14 rules for optimizing performance, such as making fewer HTTP requests, using content delivery networks, gzipping components, placing scripts at the bottom of pages, and avoiding redirects. Case studies demonstrate how following these rules can significantly improve page load times. The document emphasizes starting performance improvements by focusing on front-end optimizations and advocates evangelizing best practices.
This document provides an overview of web services and introduces key concepts. It discusses how web services provide a clean separation between capabilities and user interfaces, allowing companies to expose capabilities through standardized APIs. The document then covers basic web service architectures and terminology, including the roles of XML, SOAP, WSDL, and UDDI. It also provides an example WSDL definition for a sample job submission web service.
The document provides an overview and introduction to web services. It discusses installing Tomcat and Apache Axis to develop and deploy sample web services. It also covers designing client applications to use existing web services like those from Google and Amazon. Key topics introduced include SOAP, WSDL, and how web services provide a clean separation between capabilities and user interfaces, allowing capabilities to be accessed programmatically.
This document provides tips for optimizing images for fast loading on mobile websites. It discusses how image size, quality, format, caching, and lazy loading can significantly impact performance. Specific techniques recommended include resizing images to appropriate screen sizes, using formats like WebP and SVG that compress well, lazy loading images below the fold, and adding responsive breakpoints to serve optimized images for different devices. Benchmarking tools are suggested for testing image performance in various scenarios. The overall message is that with the right optimizations, images can load quickly without sacrificing quality.
Web Performance Internals explained for Developers and other stake holders.Sreejesh Madonandy
Web Performance Internals explained for Developers and others
1. Starting with How Internet Works
2. How Browser Works
3. How to measure Web performance
4. Concluded with tips to Developers and Power users on Improving Web Performance
www.caucho.com
Using industry standard tool and methodology, Resin Pro web server was put to the test versus Nginx, a popular web server with a reputation for efficiency and performance. Nginx is known to be faster and more reliable under load than the popular Apache HTTPD. Benchmark tests between Resin and Nginx yielded competitive figures, with Resin leading with fewer errors and faster response times. In numerous and varying tests, Resin handled 20% to 25% more load while still outperforming Nginx. In particular, Resin was able to sustain fast response times under extremely heavy load while Nginx performance degraded.
Patterns and practices for building resilient serverless applicationsYan Cui
Lambda gives you multi-AZ out-of-the-box, but still, things can go wrong in production. There are region-wide outages, and performance degradation in services your function depends on can cause it to time out or error. And what if you're dealing with downstream systems that just aren't as scalable and can't handle the load you put on them? The bottom line is many things can go wrong and they often do at the worst of times. The goal of building resilient systems is not to prevent failures, but to build systems that can withstand these failures. In this talk, we will look at a number of practices and architectural patterns that can help you build more resilient serverless applications. Such as multi-region, active-active, employing DLQs and surge queues. We'll also see how we can use chaos experiments to help us identify failure modes before they manifest in production
The document discusses using queues to improve the scalability of PHP applications. It describes how queues allow asynchronous and distributed processing of tasks to improve performance and allow applications to handle more traffic. Specifically, it promotes using Zend Server's job queue to offload long-running tasks like payments processing so the frontend can scale independently of backend processing. Examples show building jobs that communicate with the queue to asynchronously execute tasks like payments.
The document provides an overview of optimisations that can be made to apps to improve performance and speed. It discusses how fast is perceived by humans, benchmarking current performance, optimising images through resizing, formatting and lazy loading, reducing payload sizes through caching and content delivery, and replacing animated GIFs with optimized video formats. The document contains tips and examples for profiling apps and making optimizations to deliver content quickly.
2019 PHP Serbia - Boosting your performance with BlackfireMarko Mitranić
We aim to dispel the notion that large PHP applications tend to be sluggish, resource-intensive and slow compared to what the likes of Python, Erlang or even Node can do. The issue is not with optimising PHP internals - it's the lack of proper introspection tools and getting them into our every day workflow that counts! In this workshop we will talk about our struggles with whipping PHP Applications into shape, as well as work together on some of the more interesting examples of CPU or IO drain.
PHP Mega Meetup, Sep, 2020, Anti patterns in phpAhmed Abdou
PHP is one of the easiest programming languages to use ever and powers more than half of the internet.
With this ease of use, certain common patterns emerge that become harmful. This is especially true when your product or service is not expected to die soon. Some anti-patterns are coding, others are related to operating your service, especially with new docker stacks. We will go over some of the most common pitfalls with a focus on enterprise development.
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...John McCaffrey
(reposting with clearer title)
Performance tuning presentation from WindyCityRails 2010.
Why performance matters
The right way to approach it
Front end testing tools
Automated testing tools
Common problems and the ways to solve them in Rails
Rails specific tools
bullet
slim_scrooge
rack bug
request log analyzer
rails indexes
This document provides information on improving Drupal performance through various techniques including performance testing, caching, optimizing database and server configurations, using tools like Varnish, load balancers, and CDNs, and addressing inefficient code. It also discusses a case study of using scalable cloud hosting and caching strategies to handle peak traffic for a site during major awards events.
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAAkamai Technologies
Maintaining the Balance: Getting the Most of Your CDN by Johannes Eckerdal, Product Specialist, IKEA
Join Johannes Eckerdal, CDN Product Specialist of Ikea for an informative supersession where he will discuss how to transform your Content Delivery Network into an Experience Delivery Network and other topics including: Why the Edge matters, Considerations around CDN agnostic versus CDN dependent approaches, How to extract the most of your CDN
Akamai Edge is the premier event for Internet innovators, tech professionals and online business pioneers who together are forging a Faster Forward World. At Edge, the architects, experts and implementers of the most innovative global online businesses gather face-to-face for an invaluable three days of sharing, learning and together pushing the limits of the Faster Forward World. Learn more at: http://www.akamai.com/edge
The document provides tips on common scalability mistakes made when designing web applications and strategies to avoid them. It discusses the importance of considering scalability from the beginning, avoiding blocking calls, caching frequently accessed data, optimizing database and file system usage, and using tools like profilers to identify bottlenecks. The key is designing applications that can scale both up and down based on current needs through a proactive, process-oriented approach.
The document discusses best practices for scalability and performance when developing PHP applications. Some key points include profiling and optimizing early, cooperating between development and operations teams, testing on production-like data, caching frequently accessed data, avoiding overuse of hard-to-scale resources, and using compiler caching and query optimization. Decoupling applications, caching, data federation, and replication are also presented as techniques for improving scalability.
Matteo Moretti discusses scaling PHP applications. He covers scaling the web server, sessions, database, filesystem, asynchronous tasks, and logging. The key aspects are decoupling services, using caching, moving to external services like Redis, S3, and RabbitMQ, and allowing those services to scale automatically using techniques like auto-scaling. Sharding the database is difficult to implement and should only be done if really needed.
All Change how the economics of Cloud will make you think differently about JavaSteve Poole
This document discusses how the economics of cloud computing will change how Java applications are developed. Cloud providers charge for computing resources on an hourly basis (e.g. $ per GB per hour), which means applications need to use resources efficiently. Java applications generally use more memory and have longer startup times than other languages. To be cost effective in the cloud, Java applications will need to reduce their memory footprint, decrease startup times, and be designed to fail and recover gracefully. The rise of APIs and microservices also requires changes to make Java more modular and efficient in constrained environments.
All change! How the new Economics of Cloud will make you think differently ab...JAXLondon_Conference
The document discusses how the economics of cloud computing will change how Java applications are developed and deployed. Cloud providers charge for computing resources on an hourly basis, incentivizing lighter, more efficient applications. Java applications will need to reduce their memory footprints and startup times to lower costs. Developers will also need to design applications to be resilient to failures and easier to debug remotely without access to instances. The rise of APIs and metering of resources will require Java and the JVM to become leaner and more flexible to run optimally in cloud environments.
Presentation from June 2013, Surrey, BC, Drupal Group meetup.
- Some tips how to improve Drupal 7 performance.
- Get Drupal 7 working faster
- Optimize code in order to get proper responses
- Use cache (memcache, APC cache, entity cache, varnish)
- Scale Drupal horizontally in order to balance load
How far have you got with learning about Cloud? Got your head around Platform as a Service? Understand what IaaS means? Can spell Docker? Working in a DevOps mode? It’s easy to focus on learning new technology but it’s time to take a step back and look at what the technical implications are when an application is heading to the cloud. In the world of the cloud the benefits are high but the economics (financial and technical) can be radically different. Learn more about these new realities and how they can change application design, deployment and support. The introduction of Cloud technologies and its rapid adoption creates new opportunities and challenges. Whether designer, developer or tester, this talk will help you to start thinking differently about Java and the Cloud.
Presented at JAX DE, 2016
Use Case Patterns for LLM Applications (1).pdfM Waleed Kadous
What are the "use case patterns" for deploying LLMs into production? Understanding these will allow you to spot "LLM-shaped" problems in your own industry.
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCPDaniel Zivkovic
The document is about an upcoming meetup hosted by ServerlessToronto.org on "Serverless Cloud Native Java with Spring Cloud GCP" presented by Ray Tsang. It includes an agenda for the event with topics on Spring Cloud GCP features and integrations with Google Cloud Platform services. There is also information about upcoming meetups from the organization and a thank you from Ray Tsang for attending the presentation.
The document provides an overview of scaling principles for web applications, beginning with optimizing a single server application and progressing to more advanced architectures involving load balancing, multiple web/application servers, and multiple database servers. It discusses profiling applications to identify bottlenecks, various caching and optimization strategies, Apache configuration for handling load, and links to additional resources on related topics.
The document provides an overview of scaling principles for web applications, beginning with optimizing a single server application and progressing to more advanced architectures involving load balancing, multiple web/application servers, and multiple database servers. It discusses profiling applications to identify bottlenecks, various caching and optimization strategies, Apache configuration for prefork MPM, and load balancing technologies like DNS round robin, Apache reverse proxy, HAProxy and Pound. Links are provided to additional resources on related topics.
Similar to 2019 StartIT - Boosting your performance with Blackfire (20)
Database Management Myths for DevelopersJohn Sterrett
Myths, Mistakes, and Lessons learned about Managing SQL Server databases. We also focus on automating and validating your critical database management tasks.
Video traffic on the Internet is constantly growing; networked multimedia applications consume a predominant share of the available Internet bandwidth. A major technical breakthrough and enabler in multimedia systems research and of industrial networked multimedia services certainly was the HTTP Adaptive Streaming (HAS) technique. This resulted in the standardization of MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH) which, together with HTTP Live Streaming (HLS), is widely used for multimedia delivery in today’s networks. Existing challenges in multimedia systems research deal with the trade-off between (i) the ever-increasing content complexity, (ii) various requirements with respect to time (most importantly, latency), and (iii) quality of experience (QoE). Optimizing towards one aspect usually negatively impacts at least one of the other two aspects if not both. This situation sets the stage for our research work in the ATHENA Christian Doppler (CD) Laboratory (Adaptive Streaming over HTTP and Emerging Networked Multimedia Services; https://athena.itec.aau.at/), jointly funded by public sources and industry. In this talk, we will present selected novel approaches and research results of the first year of the ATHENA CD Lab’s operation. We will highlight HAS-related research on (i) multimedia content provisioning (machine learning for video encoding); (ii) multimedia content delivery (support of edge processing and virtualized network functions for video networking); (iii) multimedia content consumption and end-to-end aspects (player-triggered segment retransmissions to improve video playout quality); and (iv) novel QoE investigations (adaptive point cloud streaming). We will also put the work into the context of international multimedia systems research.
Artificial Intelligence (AI), Robotics and Computational fluid dynamicsChintan Kalsariya
Dive into the intersection of Artificial Intelligence (AI), Robotics, and Computational Fluid Dynamics (CFD) in pharmaceutical sciences. This presentation provides a comprehensive overview, from the foundational principles to advanced applications in pharmaceutical automation. Explore the transformative impact of AI and robotics on drug discovery, manufacturing, and delivery, alongside CFD's role in optimizing processes. Delve into the advantages and disadvantages of integrating these technologies, uncover current challenges, and envision future directions shaping the future of pharmaceutical innovation.
This presentation will explore the intersection of artificial intelligence, robotics, and computational fluid dynamics in the context of pharmaceutical automation. We will provide an overview of these technologies, discuss their applications in the pharmaceutical industry, highlight the advantages and disadvantages of their use, and examine current challenges and future directions.
The integration of artificial intelligence, robotics, and computational fluid dynamics in pharmaceutical automation has the potential to revolutionize the industry, improving efficiency, safety, and quality control. However, challenges related to data management, standardization, workforce adaptation, and regulatory compliance must be addressed. The future of pharmaceutical automation lies in the continued development and integration of these technologies, leading to more efficient, reliable, and innovative drug manufacturing processes.
AI in Pharmaceutical Industry
Pharmaceutical Automation
Robotics in Pharma
Computational Fluid Dynamics (CFD)
Drug Discovery
Pharmaceutical Manufacturing
Pharmaceutical Applications
Advantages of AI and Robotics
Disadvantages of AI and Robotics
Challenges in Pharmaceutical Automation
Future of AI and Robotics in Pharma
Artificial Intelligence
Robotics
Computational Fluid Dynamics
Pharmaceutical Automation
Drug Discovery
Manufacturing Optimization
AI in Healthcare
Robotics in Pharmaceuticals
CFD Applications
Pharmaceutical Industry
Advantages of AI
Disadvantages of Robotics
Challenges in CFD
Future of AI in Pharma
Automation Trends
UiPath Community Day Kraków: Devs4Devs ConferenceUiPathCommunity
We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner!
We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too!
Check out our proposed agenda below 👇👇
08:30 ☕ Welcome coffee (30')
09:00 Opening note/ Intro to UiPath Community (10')
Cristina Vidu, Global Manager, Marketing Community @UiPath
Dawid Kot, Digital Transformation Lead @Proservartner
09:10 Cloud migration - Proservartner & DOVISTA case study (30')
Marcin Drozdowski, Automation CoE Manager @DOVISTA
Pawel Kamiński, RPA developer @DOVISTA
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
09:40 From bottlenecks to breakthroughs: Citizen Development in action (25')
Pawel Poplawski, Director, Improvement and Automation @McCormick & Company
Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company
10:05 Next-level bots: API integration in UiPath Studio (30')
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
10:35 ☕ Coffee Break (15')
10:50 Document Understanding with my RPA Companion (45')
Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath
11:35 Power up your Robots: GenAI and GPT in REFramework (45')
Krzysztof Karaszewski, Global RPA Product Manager
12:20 🍕 Lunch Break (1hr)
13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30')
Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance
13:50 Communications Mining - focus on AI capabilities (30')
Thomasz Wierzbicki, Business Analyst @Office Samurai
14:20 Polish MVP panel: Insights on MVP award achievements and career profiling
Sustainability requires ingenuity and stewardship. Did you know Pigging Solutions pigging systems help you achieve your sustainable manufacturing goals AND provide rapid return on investment.
How? Our systems recover over 99% of product in transfer piping. Recovering trapped product from transfer lines that would otherwise become flush-waste, means you can increase batch yields and eliminate flush waste. From raw materials to finished product, if you can pump it, we can pig it.
9 Ways Pastors Will Use AI Everyday By 2029
These future use cases are only a handful of the many many options generative AI is providing pastors and leaders everywhere. If you learn how AI might enhance and support your ministry, you'll enter into a world that's full of hope for the Gospel.
Learn more at http://www.AIforChurchLeaders.com and http://www.churchtechtoday.com
Metadata Lakes for Next-Gen AI/ML - DatastratoZilliz
As data catalogs evolve to meet the growing and new demands of high-velocity, unstructured data, we see them taking a new shape as an emergent and flexible way to activate metadata for multiple uses. This talk discusses modern uses of metadata at the infrastructure level for AI-enablement in RAG pipelines in response to the new demands of the ecosystem. We will also discuss Apache (incubating) Gravitino and its open source-first approach to data cataloging across multi-cloud and geo-distributed architectures.
Leveraging AI for Software Developer Productivity.pptxpetabridge
Supercharge your software development productivity with our latest webinar! Discover the powerful capabilities of AI tools like GitHub Copilot and ChatGPT 4.X. We'll show you how these tools can automate tedious tasks, generate complete syntax, and enhance code documentation and debugging.
In this talk, you'll learn how to:
- Efficiently create GitHub Actions scripts
- Convert shell scripts
- Develop Roslyn Analyzers
- Visualize code with Mermaid diagrams
And these are just a few examples from a vast universe of possibilities!
Packed with practical examples and demos, this presentation offers invaluable insights into optimizing your development process. Don't miss the opportunity to improve your coding efficiency and productivity with AI-driven solutions.
This slide deck is a deep dive the Salesforce latest release - Summer 24, by the famous Stephen Stanley. He has examined the release notes very carefully, and summarised them for the Wellington Salesforce user group, virtual meeting June 27 2024.
Multimodal Retrieval Augmented Generation (RAG) with MilvusZilliz
We've seen an influx of powerful multimodal capabilities in many LLMs. In this talk, we'll vectorize a dataset of images and texts into the same embedding space, store them in Milvus, retrieve all relevant data using multilingual texts and/or images and input multimodal data as context into GPT-4o.
Dev Dives: Mining your data with AI-powered Continuous DiscoveryUiPathCommunity
Want to learn how AI and Continuous Discovery can uncover impactful automation opportunities? Watch this webinar to find out more about UiPath Discovery products!
Watch this session and:
👉 See the power of UiPath Discovery products, including Process Mining, Task Mining, Communications Mining, and Automation Hub
👉 Watch the demo of how to leverage system data, desktop data, or unstructured communications data to gain deeper understanding of existing processes
👉 Learn how you can benefit from each of the discovery products as an Automation Developer
🗣 Speakers:
Jyoti Raghav, Principal Technical Enablement Engineer @UiPath
Anja le Clercq, Principal Technical Enablement Engineer @UiPath
⏩ Register for our upcoming Dev Dives July session: Boosting Tester Productivity with Coded Automation and Autopilot™
👉 Link: https://bit.ly/Dev_Dives_July
This session was streamed live on June 27, 2024.
Check out all our upcoming Dev Dives 2024 sessions at:
🚩 https://bit.ly/Dev_Dives_2024
this resume for sadika shaikh bca studentSadikaShaikh7
I am a dedicated BCA student with a strong foundation in web technologies, including PHP and MySQL. I have hands-on experience in Java and Python, and a solid understanding of data structures. My technical skills are complemented by my ability to learn quickly and adapt to new challenges in the ever-evolving field of computer science.
Blockchain and Cyber Defense Strategies in new genre timesanupriti
Explore robust defense strategies at the intersection of blockchain technology and cybersecurity. This presentation delves into proactive measures and innovative approaches to safeguarding blockchain networks against evolving cyber threats. Discover how secure blockchain implementations can enhance resilience, protect data integrity, and ensure trust in digital transactions. Gain insights into cutting-edge security protocols and best practices essential for mitigating risks in the blockchain ecosystem.
2. Who are we
Marko Mitranić
Senior Backend Engineer
@markomitranic
Aleksandar Ilić
Technical Architect
@spiderkv
Bojana Kovačević
Backend Developer
@bojanakovacevic89
6. Project Setup - BlackFire
1. Create a BlackFire account over at blackfire.io/signup
1.1. You can use either Google, GitHub or SymfonyConnect for this.
1.2. Fill the Account Details.
2. Go to Dashboard -> Organizations tab and Create Organization.
2.1. After creating an organization, click on “Start the Premium Trial” package.
7. 3. Go to newly created organization and create new Environment.
3.1. Check the option Development environment.
4. Under environment settings get Server ID
and Server Token.
Project Setup - BlackFire Credentials
8. Prerequisite for running a project is a Docker.
If you haven’t installed it follow procedure on official website.
Some of the steps:
● sign up
● confirm email
● download and install
● run
https://www.docker.com/
Project Setup - Prerequisite
9. Project Setup - Repository
Download the Workshop Repository from:
https://markomitranic.github.io/
PHP-Serbia-2019-Performance/
or shorthand
https://bit.ly/2EmfCZU
10. Project Setup - Docker Compose
1. Edit the /Docker/.env file by inserting your own BlackFire credentials and changing the ports if needed.
2. Enter the project’s Docker folder and execute ./deploy.sh.
3. Visit http://localhost:80/. That’s it.
13. Introduction to BlackFire - What do we look for?
Some usual suspect tools:
FrontEnd — Google Chrome developer tools, PageSpeedInsight, Phantomas
PHP layer — Blackfire, XDebug, microtime(), Symfony profiler
Database — Depends on the database. For instance, for MySQL, we can use the inbuilt
profiler and Jet profiler.
24. Bad Performance
“AliExpress reduced load time by 36%
and saw a 10.5% increase in orders
and a 27% increase in conversion for new customers.”
~ Akamai Edge 2016
“Pinterest rebuilt their pages for performance led to a 40% decrease in
wait time,
a 15% increase in SEO traffic
and a 15% percent increase in conversion rate to signup.”
~ Pinterest_Engineering
27. Don’t optimize before
knowing what is slowing down
your application
“For premature optimization is
the root of all evil.”
29. Bad Performance - Day-to-Day Profiling Methodology
1. Profile key pages
2. Start from the slowest ones
3. Compare and analyze profiles to spot differences and bottlenecks
4. Always look for the biggest (solvable) bottleneck
5. Not all bottlenecks should be solved, sometimes they are the price of business
30. Bad Performance - Price of Business
The creature in the picture is a “Dwarf in the flask” from
Fullmetal Alchemist anime.
It was a successful experiment which broke its own flask
and eventually nearly managed to kill everyone.
The author did not plan on such success, so they did not
take a great amount of precautions.
Sometimes, you just grew out of your flask. Your failed
performance can be compensated for via creating a good
flexible app && server architecture.
31. Bad Performance - Price of Business
The solution is not always the code, it lies more often in the
architecture of the app. Keep it as simple as possible, but
prepare for the future.
Splitting responsibilities, granulating your application into smaller
ones, DB sharding or caching, CDN, continuous integration.
But this is a topic for a whole set of other workshops...
33. Our Case Study - Database - Heavy Queries
When faced with a really heavy query, there is usually not much you can do.
Sometimes you can do better indexing, optimize joins, even do some caching.
40k Client entities in total
Sort and extract top 10. Based on a complex set of requirements.
Symfony 3.4 | MongoDB 3.3 | Doctrine ODM
Query Took ~6.2 seconds to complete.
On each non-cached load of this page.
34. Our Case Study - Database - Heavy Queries
The business logic is what it is, you can’t make it simpler because it suits you.
What you would usually do is start optimizing the query. Indexing, making joins when
possible etc.
But in this case all of that was already done by the previous team…
So, it seems that no code could be improved.
35. Our Case Study - Database - Heavy Queries
Not true. Once you have a bird’s-eye view of the code execution you start to notice the real
problems.
1. By some weird and not-easy-observable edge case, the query is run twice.
2. The real bottleneck is not DB, it is ODM.
Based on this, first we saved 3.1s by handling the edge case.
Then we created a new reader which simply uses direct DB queries for this particular query.
In the end, we use Symfony Cache mechanism to only run this once per day.
37. Our Case Study - Database - Scalar Queries
Sometimes, you simply don’t have the real need for using Doctrine document Hydration.
Yes, i said it.
Instead you can instead use Array or Scalar fetch methods.
39. Our Case Study - Database - Transaction Number
What is little known to developers who have never worked dealt withSQL directly is the
ability to prepare changes and trigger a DB transaction at a specific time.
In doctrine it’s called a flush().
All the changes that you make on entities are only saved to the database once you call the
flush method.
This is a double edged sword...
41. Our Case Study - Database - Transaction Number
Never flush within a loop.
Unless..
42. Our Case Study - Database - Transaction Number
Large transactions can also be slooow.
You need to find a sweetspot if dealing with large
datasets.
With MongoDB we usually use ~400 entities per
transaction, except in cases where there are a lot
of changes.
43. Our Case Study - Database - Multi Updates
Sometimes you don’t even have to loop. Try using multi updates when updating the
whole set of documents in the same way.
45. Our Case Study - Database - Always Evaluate
● Always evaluate query speed when not sure.
● Use Cursors whenever possible.
● Watch out for N+1 Problems
● DB Calls within a loop - use prepared statements.
● ***Learn to properly use Indexes and Cardinality***
● Enable slow query log and make sure none of your queries do a full table scan.
47. Our Case Study - Database - Always Explain
https://www.youtube.com/watch?v=GDqtEyhjpqU
48. Our Case Study - Database - Volume
If all else is done but you still have a problem with the volume of work (user visits, queries) it
might be time to start researching scaling techniques. (remember our Dwarf in the flask?)
Usually in these applications the same bottlenecks remain present.
Research database sharding, replication and DB caching layer.
50. Our Case Study - RAM.CPU.IO Drain - Long Running Scripts
Long running scripts often deal with some sort of watcher jobs or migrations.
For example, here we got this 160.000 users, take each one and match them to their
respective data from another system via a backchannel call.
Take a user from DB, Call API and match, Save changes. Repeat x140k.
51. Our Case Study - RAM.CPU.IO Drain - Long Running Scripts
● In these cases optimizing cache is useless, and workload is often huge.
● PHP has a composer vendor libraries problem with RAM leaks.
● Script works for hours, racks up maximum ram and then stalls slower and slower when
GC kicks in.
52. Our Case Study - RAM.CPU.IO Drain - Long Running Scripts
53. Our Case Study - RAM.CPU.IO Drain - Autoloading and DI
Always practice to use Dependency Injection instead of (ab)using Container directly.
Apart from being a prettier and more maintainable code style, this allows Symfony to
not-recompile parts of the container during the request.
54. Our Case Study - RAM.CPU.IO Drain - Cache
“If you care about performance and don’t use a bytecode
cache then you don’t really care about performance.
Please get one and start using it.”
~ Stas Malyshev, Core Contributor to PHP and Zend
Employee
58. Our Case Study - RAM.CPU.IO Drain - Cache
https://css-tricks.com/wordpress-fragment-caching-revisited/
59. Our Case Study - RAM.CPU.IO Drain - Slow Vendors
One of our sites used IPS Community Forums and was running PHP 7.0
The vendor fully supports PHP up to 5.4 and 7.4.
One of the plugins installed, the author used mb_strripos which only works good on 7.3
...
61. Our Case Study - RAM.CPU.IO Drain - Slow Cache??
Sometimes a cache can be slow.
By default, most built-in caching mechanisms use Filesystem storage.
If you hit this bump, try with Redis, Varnish, or memcache.
Combine technologies when you see an opportunity.
62. Our Case Study - Micro Optimizations
● When instantiating objects within a big loop, use a factory which clones a prototype of
the object instead of new MyObject(); (66% faster).
● PHP 7 Already does most of these in the background. (For example ++$i)
● If you are working with objects of large cardinality, use named classes instead of
arrays. Use stdclass never.
● Avoid these slow built-in PHP functions.
https://github.com/dseguy/clearPHP/blob/master/rules/avoid-those-slow-functions.md
● Use associative arrays basically never.
https://steemit.com/php/@crell/php-use-associative-arrays-basically-never
63. Our Case Study - Micro Optimizations
● When instantiating objects within a big loop, use a factory which clones a prototype of
the object instead of new MyObject(); (66% faster).
● If you are working with objects of large cardinality, use named classes instead of
arrays. Use stdclass never.
● Avoid these slow built-in PHP functions.
https://github.com/dseguy/clearPHP/blob/master/rules/avoid-those-slow-functions.md
● Use associative arrays basically never.
https://steemit.com/php/@crell/php-use-associative-arrays-basically-never
64. Don’t optimize before
knowing what is slowing down
your application
“For premature optimization is
the root of all evil.”
75. Further research: Performance testing and maintainability
“First off, performance is an important aspect and cannot be an
afterthought. Often teams will finish the functionality and then do a
‘performance testing and fixing’ phase. It goes without saying that it is
the wrong approach.
Performance should be an exercise throughout the life cycle of the
project.”
~ Ideas2IT