This document provides an overview of profiling PHP applications for performance. It begins by discussing common myths about PHP optimizations that provide little real performance benefit. Effective profiling is based on measuring actual performance results using tools. The document outlines different profiling modes for normal development and emergency situations. It then describes various tools that can be used to profile different parts of a PHP application, including the browser, web server, PHP code, database, and operating system. It emphasizes finding and addressing bottlenecks. The document concludes by offering advice like avoiding premature optimization, understanding problems fully before attempting to fix them, and asking others for help.
There are many fast data stores, and then there is Redis. Learn about this excellent NoSQL solution that is a powerful in-memory key-value store. Learn how to solve traditionally difficult problems with Redis, and how you can benefit from 100,000 reads/writes a second on commodity hardware. We’ll discuss how and when to use the different datatypes and commands to fit your needs. We’ll discuss the different PHP libraries with their pros and cons. We’ll then show some live examples on how to use it for a chatroom, and how Redis manages a billion data points for our dating matching system. Finally, we’ll discuss some of the upcoming features in the near future, such as clustering and scripting.
Games for the Masses: Scaling Rails to the ExtremeWooga
This presentation explains and compares the work of two engineering teams that build Facebook game backends at wooga: Cloud vs. dedicated servers, SQL vs. NoSQL and in-memory database vs. a database hierarchy. He will highlight their respective advantages and disadvantages and discuss some common patterns both teams came up with to solve their problems.
Going on an HTTP Diet: Front-End Web PerformanceAdam Norwood
Is your web site or web app feeling sluggish? Getting tired of watching your pages slowly render, the long seconds ticking away before your snazzy jQuery doohickey even has a chance to fire? Chances are it’s not that slow bit of code or that clunky database behind the scenes that’s to blame – 80% of the time spent loading most web pages is on the client side! At this talk, we’ll take a look at some of the easiest low-hanging fruit you can go after to help speed up web performance on the front end, from slimming down the size of content to optimizing HTTP requests, and more.
There are many fast data stores, and then there is Redis. Learn about this excellent NoSQL solution that is a powerful in-memory key-value store. Learn how to solve traditionally difficult problems with Redis, and how you can benefit from 100,000 reads/writes a second on commodity hardware. We’ll discuss how and when to use the different datatypes and commands to fit your needs. We’ll discuss the different PHP libraries with their pros and cons. We’ll then show some live examples on how to use it for a chatroom, and how Redis manages a billion data points for our dating matching system. Finally, we’ll discuss some of the upcoming features in the near future, such as clustering and scripting.
Games for the Masses: Scaling Rails to the ExtremeWooga
This presentation explains and compares the work of two engineering teams that build Facebook game backends at wooga: Cloud vs. dedicated servers, SQL vs. NoSQL and in-memory database vs. a database hierarchy. He will highlight their respective advantages and disadvantages and discuss some common patterns both teams came up with to solve their problems.
Going on an HTTP Diet: Front-End Web PerformanceAdam Norwood
Is your web site or web app feeling sluggish? Getting tired of watching your pages slowly render, the long seconds ticking away before your snazzy jQuery doohickey even has a chance to fire? Chances are it’s not that slow bit of code or that clunky database behind the scenes that’s to blame – 80% of the time spent loading most web pages is on the client side! At this talk, we’ll take a look at some of the easiest low-hanging fruit you can go after to help speed up web performance on the front end, from slimming down the size of content to optimizing HTTP requests, and more.
At wooga the separate game teams operate their own games. That means that two developers not only develop the backend for a social game but they also the administrator's part.
This presentation gives an insight on how this is done, what tools are used and how the most important challenges were solved.
Mongodb and Totsy - E-commerce Case StudyMitch Pirtle
Deck from MongoChicago, providing a case study on the implementation of the totsy.com website using MongoDB and the Lithium framework.
There's a video you can watch of the same presentation from the Mongo Boston event which happened one month earlier:
http://www.10gen.com/video/mongoboston2010/totsy
There are seven levels of cache between your code and the users browser experience. You can take advantage of them all to provide a quicker, slicker, better user experience for the user and it won't cost you a dime to do it. You can use an OpCode Cache on the Server, a Content Development Network (for free), make use of the browser cache, setup an App Cache, use Session and Local Storage. They are all there, they are all free and this talk will go over all of them, the pros and the few downsides.
CouchDB for Web Applications - Erlang Factory London 2009Jason Davies
CouchDB is built "of the Web" and it's very exciting to convert the immense
power that CouchDB provides into a usable, real-world Web application. In this
talk I cover case studies of real-world applications that use CouchDB,
including some that can be served from CouchDB itself, and how CouchDB can
shape your Web applications to be highly scalable and flexible by embracing
HTTP philosophies, JavaScript and schemaless documents.
Speed up your Symfony2 application and build awesome features with RedisRicard Clau
Redis is an extremely fast data structure server that can be easily added to your existing stack and act like a Swiss army knife to help solve many problems that would be extremely difficult to workaround with the traditional RDBMS. In this session we will focus on what Redis is, how it works, what awesome features we can build with it and how we can use it with PHP and integrate it with Symfony2 applications making them blazing fast.
A chronicle of my attempt to create a real time web app using pure clojure at every layer of the stack, from the client to the styles to the web server
This presentation will introduce the audience to designing a WordPress theme in HTML5 and CSS3. We’ll discuss the history of HTML5, why HTML5 makes blog design easier, and what you need to do to get WordPress to output valid HTML5 code. You’ll also see how CSS3 can be used to generate an awesome-looking site using little to no graphics.
In this presentation, I show the audience how to implement HTTP caching best practices in a non-intrusive way in PHP Symfony 4 code base.
This presentation focuses on topics like:
- Caching using cache-control headers
- Cache variations using the Vary header
- Conditional requests using headers like ETag & If-None-Match
- ESI discovery & parsing using headers like Surrogate-Capability & Surrogate-Control
- Caching stateful content using JSON Web Token Validation in Varnish
More information about this presentation is available at https://feryn.eu/speaking/developing-cacheable-php-applications-php-limburg-be/
Hadoop and HBase make it easy to store terabytes of data, but how do you scale your search mechanism to sift through these mountains of bits and retrieve large result sets in a matter of milliseconds?
The Solr search server, based on Lucene, provides a scalable querying capability that nicely complements HBase. In this webinar, Rod Cope uses OpenLogic's production Solr and Hadoop environment as a case study on how you can handle rapid fire queries against terabytes of data, primarily through a combination of index sharding and fault-tolerant load balancing.
Top 10 lessons learned from deploying hadoop in a private cloudRogue Wave Software
Hadoop, HBase, and friends are built from the ground up to support big data, but that doesn't make them easy. Just like with any other relatively new and complex technologies, there are some rough edges and growing pains to manage. We've learned some hard lessons while deploying HBase tables containing billions of rows and dozens of terabytes on OpenLogic's Hadoop infrastructure.
In this webinar, Rod Cope discusses some of the "gotchas" you might run into when deploying Hadoop and HBase in your own private cloud and how to avoid them.
At wooga the separate game teams operate their own games. That means that two developers not only develop the backend for a social game but they also the administrator's part.
This presentation gives an insight on how this is done, what tools are used and how the most important challenges were solved.
Mongodb and Totsy - E-commerce Case StudyMitch Pirtle
Deck from MongoChicago, providing a case study on the implementation of the totsy.com website using MongoDB and the Lithium framework.
There's a video you can watch of the same presentation from the Mongo Boston event which happened one month earlier:
http://www.10gen.com/video/mongoboston2010/totsy
There are seven levels of cache between your code and the users browser experience. You can take advantage of them all to provide a quicker, slicker, better user experience for the user and it won't cost you a dime to do it. You can use an OpCode Cache on the Server, a Content Development Network (for free), make use of the browser cache, setup an App Cache, use Session and Local Storage. They are all there, they are all free and this talk will go over all of them, the pros and the few downsides.
CouchDB for Web Applications - Erlang Factory London 2009Jason Davies
CouchDB is built "of the Web" and it's very exciting to convert the immense
power that CouchDB provides into a usable, real-world Web application. In this
talk I cover case studies of real-world applications that use CouchDB,
including some that can be served from CouchDB itself, and how CouchDB can
shape your Web applications to be highly scalable and flexible by embracing
HTTP philosophies, JavaScript and schemaless documents.
Speed up your Symfony2 application and build awesome features with RedisRicard Clau
Redis is an extremely fast data structure server that can be easily added to your existing stack and act like a Swiss army knife to help solve many problems that would be extremely difficult to workaround with the traditional RDBMS. In this session we will focus on what Redis is, how it works, what awesome features we can build with it and how we can use it with PHP and integrate it with Symfony2 applications making them blazing fast.
A chronicle of my attempt to create a real time web app using pure clojure at every layer of the stack, from the client to the styles to the web server
This presentation will introduce the audience to designing a WordPress theme in HTML5 and CSS3. We’ll discuss the history of HTML5, why HTML5 makes blog design easier, and what you need to do to get WordPress to output valid HTML5 code. You’ll also see how CSS3 can be used to generate an awesome-looking site using little to no graphics.
In this presentation, I show the audience how to implement HTTP caching best practices in a non-intrusive way in PHP Symfony 4 code base.
This presentation focuses on topics like:
- Caching using cache-control headers
- Cache variations using the Vary header
- Conditional requests using headers like ETag & If-None-Match
- ESI discovery & parsing using headers like Surrogate-Capability & Surrogate-Control
- Caching stateful content using JSON Web Token Validation in Varnish
More information about this presentation is available at https://feryn.eu/speaking/developing-cacheable-php-applications-php-limburg-be/
Hadoop and HBase make it easy to store terabytes of data, but how do you scale your search mechanism to sift through these mountains of bits and retrieve large result sets in a matter of milliseconds?
The Solr search server, based on Lucene, provides a scalable querying capability that nicely complements HBase. In this webinar, Rod Cope uses OpenLogic's production Solr and Hadoop environment as a case study on how you can handle rapid fire queries against terabytes of data, primarily through a combination of index sharding and fault-tolerant load balancing.
Top 10 lessons learned from deploying hadoop in a private cloudRogue Wave Software
Hadoop, HBase, and friends are built from the ground up to support big data, but that doesn't make them easy. Just like with any other relatively new and complex technologies, there are some rough edges and growing pains to manage. We've learned some hard lessons while deploying HBase tables containing billions of rows and dozens of terabytes on OpenLogic's Hadoop infrastructure.
In this webinar, Rod Cope discusses some of the "gotchas" you might run into when deploying Hadoop and HBase in your own private cloud and how to avoid them.
Integrating PHP With System-i using Web ServicesIvo Jansch
Presentation about Web Services in PHP for IBM System-i users. Sam Pinkhasov (Zend) did most of the presentation, I did the general part on PHP (first 9 slides). Presentation was done at the IBM Future Proof event in Eindhoven (june 5th, 2007)
Web technologies are in a constant state of flux. It’s impossible to predict which will fail, which will shine brightly then quickly fade away, and which have real longevity. Rapid innovation is what makes web app development so exciting, but shiny new things shouldn’t be pursued without a solid understanding of the underlying web platform.
For all of the things that can go wrong with your SharePoint implementation, one of the best things we can do is learn from others. From not accepting that implementing an established information architecture and having an available infrastructure are core tenants of every SharePoint installation to managing SLAs with your end users; join us as we share not only what we've seen as worst practices but also worst experiences.
Attendees will learn practices on how to properly manage their SharePoint environments, how to work with other IT department leads and plan for a more properly planned SharePoint environment instead of dealing with the headaches that precipitate themselves when systems are hastily thrown together.
TXLF: Chef- Software Defined Infrastructure Today & TomorrowMatt Ray
The open source configuration management and automation framework Chef is used to configure, deploy and manage infrastructure of every sort. In addition to managing Linux, Windows and many other operating systems; Chef may be used to manage network hardware and storage systems. This session will provide an overview of the concepts and capabilities of Chef and discuss upcoming projects and how they fit into the Chef ecosystem.
WordPress Speed & Performance from Pagely's CTOLizzie Kardon
We've got 10 years experience in managed WordPress hosting and here our CTO brings you his engineering knowledge on optimizing WordPress and when to NOT compromise.
Looking at historic, current and evolving approaches, I will take you through from how we used to 'live' edit on one server with HTML in the code; to implementing Template Toolkit and 'front end / back end' servers; to the addition of version control; all the way through to distributed caching, file systems and processing (aka Six Apart worship) with 15+ servers.
hbaseconasia2017: Building online HBase cluster of Zhihu based on KubernetesHBaseCon
Zhiyong Bai
As a high performance and scalable key value database, Zhihu use HBase to provide online data store system along with Mysql and Redis. Zhihu’s platform team had accumulated some experience in technology of container, and this time, based on Kubernetes, we build flexible platform of online HBase system, create multiple logic isolated HBase clusters on the shared physical cluster with fast rapid,and provide customized service for different business needs. Combined with Consul and DNS server, we implement high available access of HBase using client mainly written with Python. This presentation is mainly shared the architecture of online HBase platform in Zhihu and some practical experience in production environment.
hbaseconasia2017 hbasecon hbase
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
2. About Me
• CTO of Dating DNA
• CIO of CEVO LLC
• Make Websites & iPhone Apps
• Worked on Websites for Dell, nVidia,
DirectTV, and other big clients.
3. Experience
• Lots of work with “Middle-Scale” websites.
• Lucky to Work on Fun Projects
• Lots of Web Service Stuff
• Learned most of this from other really
smart people.
4. We’ll Use An Example
and an awesome one at that...
7. MythBusters
• They get a Myth
• Break it down to its
different parts
• They Conduct a Bunch
of Tests
• They Draw Conclusions
• and have a Fun Time
8.
9. Developers
• We get Myths
(Hey, this is slow)
• We Break it down to
the different pieces
• We Conduct a Bunch of
Tests.
• We Draw Conclusions
(and normally make
changes)
• and Have a Fun Time...
10.
11. So Lets Get Started!
php /lets/get/started.php now
13. Common Performance
Claims (Myths)
• echo instead of print() • single quotes, not double
quotes
• echo commas, not
periods • include instead of
include_once
• don’t use custom
functions/classes • === faster than ==
• pass by reference • for faster than foreach
instead of by value
23. MythBusters Tested
• Keeping Your AC Off vs Windows Down
• Idling Better than Stop/Start
• Magical Aerodynamics
• Dirt-Free Filters
• Special Fuel Additives to Slow Burn
All Busted! They Didn’t Make a Difference,
Or Worsened Fuel Efficiency
24. How About
Driving Angry?
After Testing, Tory & Grant Used
33% More Fule While Driving Angry
29. Same Techniques
Apply to Both
• Some you’ll want to chose first depending
on your situation.
• You’ll want to be careful when profiling in
Production, you can make things worse.
44. Apache’s mod_status
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 25.131.42.122
</Location>
# ExtendedStatus On
47. siege
• Command Line Tool
• Run Concurrent HTTP Requests
• Runs on Linux & Mac OS
• Windows Users: Run a VM
• Great Way to Test End Result
48. siege
• Create txt file with lists of URLs to hit
• Run Command:
siege -c 10 -r 10 -f urls.txt
• c = concurrent
r = # of requests
f = path to URL file
54. XHProf
• Developed by Facebook
• Works well for both Development
& Production* Profiling
• pecl extension
• Decent UI for viewing Results
* - Use Sampling & Special CPU Flags for Production
http://mirror.facebook.net/facebook/xhprof/doc.html
55. XHGui
• Improved GUI
• Easy to Setup
• Built In Sampling
• Advanced Configuration
• MySQL Backend
• I recommend using this!
https://github.com/preinheimer/xhprof
57. Xdebug Profiler
• Install Xdebug
• Enable Xdebug Profiling
• Outputs a Cachegrind Log
• Use KCachegrind / WinCachegrind /
Webgrind to view
• For the Rich, MacCallGrind for $150
58. Enabling Xdebug
Profiling
xdebug.profiler_enable=1
xdebug.profiler_output_dir=/tmp
xdebug.profiler_output_name=cachegrind.out.%p
Xdebug Profiling Not for Production
(unless you have a 100TB HDD laying around)
60. Timing Points
• Most Frameworks have Built-In Profiling /
Timing Points
• Most ORMs have them as well
• You can do them yourself
• A must for Database Queries
61. Timing Points
$start = microtime(true); // true to get as float
/* Do your Crazy Code, i.e. query */
$end = microtime(true);
$time = round($end - $start, 4);
62. Other Tools
• Inclued
http://php.net/manual/en/book.inclued.php
• Memtrack
http://php.net/manual/en/
book.memtrack.php
63. Browser Static Files
Database and/or
Data Store
Web Server
PHP App
Server OS
Web Services &
Resources Hardware
Cache
64. Databases
• Typically, First Thing to Slow Down
• Things to that will Kill the DB:
• Missing Indexes
• Nested Queries
• Large Joins
• Locked Queries
65. Jet Profiler
• MySQL Profiler
• Free Version (Okay) & Paid (Awesome)
• Not Cheap ($399)
• But Worth It
• Analytics Over Time
71. vmstat
• swap > 0 means swapping
Memory Issue
• cpu sys + us really high
CPU / Code / PHP Problem
• cpu wa > 10
Disk IO Problem*
* - Technically could be Network IO as well, but typically
one of the last and more rare bottlenecks to hit
81. Whew, Lots of Tools
and a lot more out there not in this talk
Find any cool ones, let me know!
82. Normal Profiling
• Start with XHProf/XHGui and FireBug
• Avoid Premature Optimization
• Complicated Change
• Little Reward
• Use siege, or alternative, to simulate load.
83. Emergency Profiling
• Start with OS Level Testing Tools (htop,
vmstat, vnstat) to check Server
Performance
• Determine which Resource(s) are being
over utilized
• Finding the bottleneck is key