The document discusses optimizations made in PHP 7 to improve performance. Some key points:
- PHP 7 optimized how values and objects are stored in memory by removing unnecessary overhead like reference counting. This reduces memory usage and indirection.
- Arrays were optimized to reduce the number of allocations, size, and lookup indirections compared to PHP 5.
- Objects saw reduced allocations, size and indirection for property values in PHP 7.
- Other optimizations included using 64-bit integers, improving immutable array performance, and enhancing the virtual machine to better manage function call stacks.
PHP data structures (and the impact of php 7 on them), phpDay Verona 2015, ItalyPatrick Allaert
We all have certainly learned data structures at school: arrays, lists, sets, stacks, queues (LIFO/FIFO), heaps, associative arrays, trees, ... and what do we mostly use in PHP? The "array"! In most cases, we do everything and anything with it but we stumble upon it when profiling code. During this session, we'll learn again to use the structures appropriately, leaning closer on the way to employ arrays, the SPL and other structures from PHP extensions as well.The impact that PHP 7 should have on data structures will be introduced as well.
As a result of an engine rewrite with focus on more efficient data structures, PHP 7 offers much improved performance and memory usage. This session describes important aspects of the new implementation and how it compares to PHP 5. A particular focus will be on the representation of values, arrays and objects.
PHP 7 – What changed internally? (Forum PHP 2015)Nikita Popov
One of the main selling points of PHP 7 is greatly improved performance, with many real-world applications now running twice as fast… But where do these improvements come from?
At the core of PHP 7 lies an engine rewrite with focus on improving memory usage and performance. This talk provides an overview of the most significant changes, briefly covering everything from data structure changes, over enhancements in the executor, to the new compiler implementation.
Static Optimization of PHP bytecode (PHPSC 2017)Nikita Popov
This document discusses static optimization of PHP bytecode. It describes optimizations like constant propagation, dead code elimination, inlining, and specialization that have been implemented in PHP. It also discusses challenges to optimization from features like references, eval(), and variable variables. Type inference using static single assignment form is explained. Metrics on performance improvements from optimizations in libraries and applications like WordPress are provided. Current and future work on additional optimizations in PHP is mentioned.
PHP 8.0 comes with many long-awaited features: A just-in-time compiler, attributes, union types, and named arguments are just a small part of the list. As a major version, it also includes some backward-incompatible changes, which are centered around stricter error handling and enhanced type safety. Let's have an overview of the important changes in PHP 8.0 and how they might affect you!
The document discusses the Just-In-Time (JIT) compiler that was introduced in PHP 8. It provides a brief history of JIT in PHP, explaining that early prototypes showed that the rest of PHP was too slow to benefit from JIT. It then discusses how optimizations from JIT were integrated into opcache without needing a full JIT. It provides information on configuring and using the JIT compiler, and shows performance improvements on benchmarks. It also provides an example of how a function is compiled to machine code by the JIT compiler.
This document provides an overview of new features introduced in PHP 5.3 for the Standard PHP Library (SPL). It discusses several new SPL container classes like SplFixedArray, SplDoublyLinkedList, SplStack, SplQueue, SplHeap, SplPriorityQueue, and SplObjectStorage. For each container class, it describes what it is, when it should be used, provides example code, and benchmarks the execution speed and memory usage compared to traditional PHP arrays. The document concludes by thanking Etienne Kneuss for his work on the new SPL features and listing some additional SPL resources and possible future enhancements.
PHP 8.0 is expected to be released by the end of the year, so it’s time to take a first look at the next major version of PHP. Attributes, union types, and a just-in-time compiler are likely the flagship features of this release, but there are many more improvements to be excited about. As PHP 8.0 is a major version, this release also includes backwards-incompatible changes, many of which are centered around stricter error handling and more type safety.
This talk will discuss new features already implemented in PHP 8, backwards-compatibility breaks to watch out for, as well as some features that are still under discussion.
PHP data structures (and the impact of php 7 on them), phpDay Verona 2015, ItalyPatrick Allaert
We all have certainly learned data structures at school: arrays, lists, sets, stacks, queues (LIFO/FIFO), heaps, associative arrays, trees, ... and what do we mostly use in PHP? The "array"! In most cases, we do everything and anything with it but we stumble upon it when profiling code. During this session, we'll learn again to use the structures appropriately, leaning closer on the way to employ arrays, the SPL and other structures from PHP extensions as well.The impact that PHP 7 should have on data structures will be introduced as well.
As a result of an engine rewrite with focus on more efficient data structures, PHP 7 offers much improved performance and memory usage. This session describes important aspects of the new implementation and how it compares to PHP 5. A particular focus will be on the representation of values, arrays and objects.
PHP 7 – What changed internally? (Forum PHP 2015)Nikita Popov
One of the main selling points of PHP 7 is greatly improved performance, with many real-world applications now running twice as fast… But where do these improvements come from?
At the core of PHP 7 lies an engine rewrite with focus on improving memory usage and performance. This talk provides an overview of the most significant changes, briefly covering everything from data structure changes, over enhancements in the executor, to the new compiler implementation.
Static Optimization of PHP bytecode (PHPSC 2017)Nikita Popov
This document discusses static optimization of PHP bytecode. It describes optimizations like constant propagation, dead code elimination, inlining, and specialization that have been implemented in PHP. It also discusses challenges to optimization from features like references, eval(), and variable variables. Type inference using static single assignment form is explained. Metrics on performance improvements from optimizations in libraries and applications like WordPress are provided. Current and future work on additional optimizations in PHP is mentioned.
PHP 8.0 comes with many long-awaited features: A just-in-time compiler, attributes, union types, and named arguments are just a small part of the list. As a major version, it also includes some backward-incompatible changes, which are centered around stricter error handling and enhanced type safety. Let's have an overview of the important changes in PHP 8.0 and how they might affect you!
The document discusses the Just-In-Time (JIT) compiler that was introduced in PHP 8. It provides a brief history of JIT in PHP, explaining that early prototypes showed that the rest of PHP was too slow to benefit from JIT. It then discusses how optimizations from JIT were integrated into opcache without needing a full JIT. It provides information on configuring and using the JIT compiler, and shows performance improvements on benchmarks. It also provides an example of how a function is compiled to machine code by the JIT compiler.
This document provides an overview of new features introduced in PHP 5.3 for the Standard PHP Library (SPL). It discusses several new SPL container classes like SplFixedArray, SplDoublyLinkedList, SplStack, SplQueue, SplHeap, SplPriorityQueue, and SplObjectStorage. For each container class, it describes what it is, when it should be used, provides example code, and benchmarks the execution speed and memory usage compared to traditional PHP arrays. The document concludes by thanking Etienne Kneuss for his work on the new SPL features and listing some additional SPL resources and possible future enhancements.
PHP 8.0 is expected to be released by the end of the year, so it’s time to take a first look at the next major version of PHP. Attributes, union types, and a just-in-time compiler are likely the flagship features of this release, but there are many more improvements to be excited about. As PHP 8.0 is a major version, this release also includes backwards-incompatible changes, many of which are centered around stricter error handling and more type safety.
This talk will discuss new features already implemented in PHP 8, backwards-compatibility breaks to watch out for, as well as some features that are still under discussion.
The document discusses iterators in PHP. It begins by explaining what an iterator is and provides examples of using iterators to loop through arrays and files. It then discusses the benefits of using iterators over plain arrays, such as improved readability, ability to enforce structure, and better memory efficiency. The document also covers implementing iterators by having classes implement the Iterator interface and explains the different types of iterables in PHP like arrays, iterators, generators, and iterator aggregates.
This document summarizes two PHP monitoring tools: APM (Alternative PHP Monitor) and Pinba.
APM is a tool dedicated to error handling in PHP applications. It provides functions to retrieve error events and slow requests from a database. Pinba is focused on real-time performance monitoring. It allows setting timers and retrieving performance metrics like request time and memory usage. Both tools have low overhead and are open source alternatives to commercial monitoring solutions.
This document provides a summary of the Standard PHP Library (SPL) which is a collection of classes and interfaces that provide solutions to common problems. It discusses key SPL components like arrays, iterators, exceptions, maps, sets, heaps, queues and stacks. The SPL aims to standardize data access and provides interfaces for traversing data structures, working with files and implementing patterns like Observer.
SPL: The Undiscovered Library - DataStructuresMark Baker
The document provides an overview of the Standard PHP Library (SPL) data structures in PHP, including Fixed Arrays, Doubly-Linked Lists, Stacks, and Queues. It discusses what each data structure is, common use cases, time complexities of key operations, and examples of implementing each with native PHP arrays versus SPL classes. The document shows that SPL data structures can offer improved performance and lower memory usage compared to traditional PHP arrays in many cases.
Thijs Feryn gave a presentation on the CLI (command line interface) SAPI for PHP. The CLI SAPI allows PHP scripts to be run from the command line/terminal instead of through a web server. Some key points of the CLI SAPI include reading arguments from $argv, reading input from STDIN, writing output to STDOUT, and having full control over script execution without timeouts. The CLI SAPI is useful for tasks like cronjobs, batch processing, and applications without a web frontend.
Php data structures – beyond spl (online version)Mark Baker
Presentation on the Trie datastructure, showing how it works, how it's used and what it can be used for; and an implementation of Tries in PHP... with occasional references to Rugby League
Example code to go with the slides can be found at https://github.com/MarkBaker/Tries
and
https://github.com/MarkBaker/QuadTrees
This document provides information about using the PHP command line interface (CLI) SAPI. It discusses when to use the CLI SAPI, such as for cron jobs, batch tasks, daemons, and process control. It also provides examples of using the PHP binary to execute scripts from the command line, pass arguments, read from STDIN, and use options like -a for interactive mode, -r to run PHP code directly, and -i to get PHP configuration information.
This document provides an overview of regular expressions (regexes) and grammars in Perl 6. It discusses key concepts like rules, tokens, and capturing matches. Regexes allow matching patterns in strings, while grammars parse strings according to defined rules and tokens. The document gives examples of grammars for search queries and dates that capture city, country, from and to dates, and guest numbers. It demonstrates parsing strings and accessing captured values to retrieve individual fields.
Mirror, mirror on the wall: Building a new PHP reflection library (DPC 2016)James Titcumb
Have you ever used PHP's built in reflection, only to find you can't do quite what you wanted? What about finding types for parameters or properties? What about reflecting on classes that aren't loaded, so that you can modify them directly?
Better Reflection is an awesome new library that uses magical time-warp techniques* (*actual magic or time-warp not guaranteed) to improve on PHP's built-in reflection by providing additional functionality. In this talk we'll cover what reflection is all about, explore the cool features of Better Reflection already implemented, the difficulties we faced actually writing the thing, and how you can use Better Reflection in your projects to maximise your reflection-fu.
PHP 8.1 brings Enums, one of the most requested features in PHP.
Enums, or Enumerations, allow creating strict and type-safe structures for fixed values. An Enum structure can hold a number of values that can also be backed with integer or string values.
In this comprehensive session, we will discover what Enums are, why they are useful, how to apply them on our applications, and things to watch out for when using Enums.
Slides from presentation on PHP 5.5 Generators given to PHP Brighton group on 16th December 2013, and subsequently to the PHP Cambridge group on 22nd September 2014
Thijs Feryn gave a presentation on the CLI SAPI at the PHPBarcelona Conference on October 28th, 2011. He discussed how the CLI SAPI allows PHP scripts to be executed from the command line interface and when it is useful, such as for cron jobs, batch tasks, daemons and more. He provided examples of passing arguments, reading from STDIN, and using functions like getopt in CLI scripts.
This talk discusses various issues of low-level PHP performance, such as: When is it more efficient to use arrays or objects? What causes catastrophic garbage collection? Does adding type annotations make PHP faster or slower?
I will answer these types of question with a (shallow) dive into PHP internals, touching on various topics like value representation, bytecode optimization and GC.
The document discusses abstract syntax trees (ASTs) and parsing of code. It provides examples of parsing JavaScript code into tokens and then building a syntax tree. It also discusses common JavaScript parsers like Esprima and Acorn, and AST specifications like ESTree. Homomorphic parsing is shown where code and AST are equivalent. Common uses of ASTs include transpilation, linting, minification, and code transformation.
The document discusses creating parsers and languages using JavaScript. It provides an overview of popular parser generator libraries for JavaScript like Jison, PEG.js, and others. It covers topics like top-down vs bottom-up parsing, handling ambiguity and left recursion, operator precedence, and code generation including building ASTs and using source maps. Live demos are mentioned to further illustrate creating parsers and languages.
The document discusses performance improvements in PHP 7 compared to PHP 5. It summarizes profiling results that show PHP 7 code runs 25% faster and uses 30% less memory than PHP 5 code. It then discusses various internal optimizations in PHP 7 that provide these performance gains, such as improved compiler optimizations, more efficient variable, hashtable and string handling. The document provides examples of how these internal changes help optimize CPU cache usage and reduce memory overhead.
This document discusses performance considerations with PHP 7. It describes how PHP 7 has a new compiler that optimizes code more at compile time compared to PHP 5. PHP 7 also has optimizations for variables, references, hashtables, strings, and encapsed strings that improve performance. These changes make PHP code run faster and be more efficient with memory and CPU cache usage compared to PHP 5.
The document discusses iterators in PHP. It begins by explaining what an iterator is and provides examples of using iterators to loop through arrays and files. It then discusses the benefits of using iterators over plain arrays, such as improved readability, ability to enforce structure, and better memory efficiency. The document also covers implementing iterators by having classes implement the Iterator interface and explains the different types of iterables in PHP like arrays, iterators, generators, and iterator aggregates.
This document summarizes two PHP monitoring tools: APM (Alternative PHP Monitor) and Pinba.
APM is a tool dedicated to error handling in PHP applications. It provides functions to retrieve error events and slow requests from a database. Pinba is focused on real-time performance monitoring. It allows setting timers and retrieving performance metrics like request time and memory usage. Both tools have low overhead and are open source alternatives to commercial monitoring solutions.
This document provides a summary of the Standard PHP Library (SPL) which is a collection of classes and interfaces that provide solutions to common problems. It discusses key SPL components like arrays, iterators, exceptions, maps, sets, heaps, queues and stacks. The SPL aims to standardize data access and provides interfaces for traversing data structures, working with files and implementing patterns like Observer.
SPL: The Undiscovered Library - DataStructuresMark Baker
The document provides an overview of the Standard PHP Library (SPL) data structures in PHP, including Fixed Arrays, Doubly-Linked Lists, Stacks, and Queues. It discusses what each data structure is, common use cases, time complexities of key operations, and examples of implementing each with native PHP arrays versus SPL classes. The document shows that SPL data structures can offer improved performance and lower memory usage compared to traditional PHP arrays in many cases.
Thijs Feryn gave a presentation on the CLI (command line interface) SAPI for PHP. The CLI SAPI allows PHP scripts to be run from the command line/terminal instead of through a web server. Some key points of the CLI SAPI include reading arguments from $argv, reading input from STDIN, writing output to STDOUT, and having full control over script execution without timeouts. The CLI SAPI is useful for tasks like cronjobs, batch processing, and applications without a web frontend.
Php data structures – beyond spl (online version)Mark Baker
Presentation on the Trie datastructure, showing how it works, how it's used and what it can be used for; and an implementation of Tries in PHP... with occasional references to Rugby League
Example code to go with the slides can be found at https://github.com/MarkBaker/Tries
and
https://github.com/MarkBaker/QuadTrees
This document provides information about using the PHP command line interface (CLI) SAPI. It discusses when to use the CLI SAPI, such as for cron jobs, batch tasks, daemons, and process control. It also provides examples of using the PHP binary to execute scripts from the command line, pass arguments, read from STDIN, and use options like -a for interactive mode, -r to run PHP code directly, and -i to get PHP configuration information.
This document provides an overview of regular expressions (regexes) and grammars in Perl 6. It discusses key concepts like rules, tokens, and capturing matches. Regexes allow matching patterns in strings, while grammars parse strings according to defined rules and tokens. The document gives examples of grammars for search queries and dates that capture city, country, from and to dates, and guest numbers. It demonstrates parsing strings and accessing captured values to retrieve individual fields.
Mirror, mirror on the wall: Building a new PHP reflection library (DPC 2016)James Titcumb
Have you ever used PHP's built in reflection, only to find you can't do quite what you wanted? What about finding types for parameters or properties? What about reflecting on classes that aren't loaded, so that you can modify them directly?
Better Reflection is an awesome new library that uses magical time-warp techniques* (*actual magic or time-warp not guaranteed) to improve on PHP's built-in reflection by providing additional functionality. In this talk we'll cover what reflection is all about, explore the cool features of Better Reflection already implemented, the difficulties we faced actually writing the thing, and how you can use Better Reflection in your projects to maximise your reflection-fu.
PHP 8.1 brings Enums, one of the most requested features in PHP.
Enums, or Enumerations, allow creating strict and type-safe structures for fixed values. An Enum structure can hold a number of values that can also be backed with integer or string values.
In this comprehensive session, we will discover what Enums are, why they are useful, how to apply them on our applications, and things to watch out for when using Enums.
Slides from presentation on PHP 5.5 Generators given to PHP Brighton group on 16th December 2013, and subsequently to the PHP Cambridge group on 22nd September 2014
Thijs Feryn gave a presentation on the CLI SAPI at the PHPBarcelona Conference on October 28th, 2011. He discussed how the CLI SAPI allows PHP scripts to be executed from the command line interface and when it is useful, such as for cron jobs, batch tasks, daemons and more. He provided examples of passing arguments, reading from STDIN, and using functions like getopt in CLI scripts.
This talk discusses various issues of low-level PHP performance, such as: When is it more efficient to use arrays or objects? What causes catastrophic garbage collection? Does adding type annotations make PHP faster or slower?
I will answer these types of question with a (shallow) dive into PHP internals, touching on various topics like value representation, bytecode optimization and GC.
The document discusses abstract syntax trees (ASTs) and parsing of code. It provides examples of parsing JavaScript code into tokens and then building a syntax tree. It also discusses common JavaScript parsers like Esprima and Acorn, and AST specifications like ESTree. Homomorphic parsing is shown where code and AST are equivalent. Common uses of ASTs include transpilation, linting, minification, and code transformation.
The document discusses creating parsers and languages using JavaScript. It provides an overview of popular parser generator libraries for JavaScript like Jison, PEG.js, and others. It covers topics like top-down vs bottom-up parsing, handling ambiguity and left recursion, operator precedence, and code generation including building ASTs and using source maps. Live demos are mentioned to further illustrate creating parsers and languages.
The document discusses performance improvements in PHP 7 compared to PHP 5. It summarizes profiling results that show PHP 7 code runs 25% faster and uses 30% less memory than PHP 5 code. It then discusses various internal optimizations in PHP 7 that provide these performance gains, such as improved compiler optimizations, more efficient variable, hashtable and string handling. The document provides examples of how these internal changes help optimize CPU cache usage and reduce memory overhead.
This document discusses performance considerations with PHP 7. It describes how PHP 7 has a new compiler that optimizes code more at compile time compared to PHP 5. PHP 7 also has optimizations for variables, references, hashtables, strings, and encapsed strings that improve performance. These changes make PHP code run faster and be more efficient with memory and CPU cache usage compared to PHP 5.
The why and how of moving to php 5.4/5.5Wim Godden
With PHP 5.5 out and many production environments still running 5.2 (or older), it's time to paint a clear picture on why everyone should move to 5.4 and 5.5 and how to get code ready for the latest version of PHP. In this talk, we'll look at some handy tools and techniques to ease the migration.
Redis is a NoSQL technology that rides a fine line between database and in-memory cache. Redis also offers "remote data structures", which gives it a significant advantage over other in-memory databases. This session will cover several PHP clients for Redis, and how to use them for caching, data modeling and generally improving application throughput.
The document summarizes changes to the dictionary implementation in Python 3.6. It describes how Python 3.6 uses a more compact, ordered dictionary structure compared to previous versions. This new implementation reduces memory usage and improves iteration speed by keeping dictionary entries dense. It also preserves the insertion order of keys. The document discusses some future improvements being worked on, such as optimizing the legacy implementation and improving OrderedDict.
This document contains sample questions for the Zend Certification PHP 5 exam. It includes multiple choice questions testing PHP 5 language features and best practices related to topics like XML processing, database access, regular expressions, and security. The questions cover syntax, functions, patterns and other PHP concepts that could appear on the certification exam.
This document summarizes the history and evolution of PHP from its origins in 1995 as a CGI scripting language through its current version 5.5 released in 2013. It describes some of the major milestones like the introduction of the Zend Engine in PHP 4 that improved performance and compilation, and the transition to a true object model in PHP 5. It highlights new features in PHP 5.5 like the password hashing API and generators. Performance benchmarks show PHP 5.5 is faster than previous versions with speed improvements up to 20% from PHP 5.3. The document promotes contributing to the open source PHP project and lists some of the key areas and ways people can get involved.
Slides for my talk at SkyCon'12 in Limerick.
Here I've squeezed four talks into one, covering a lot of ground quickly, so I've included links to more detailed presentations and other resources.
PHP 5.5 is the latest version of PHP that includes new features like a password hashing API, generators syntax, and a finally keyword for exceptions. It also includes performance improvements and integration with the OPcache for opcode caching. Some changes in PHP 5.5 include deprecating the mysql extension and preg_replace /e modifier.
Python's "batteries included" philosophy means that it comes with an astonishing amount of great stuff. On top of that, there's a vibrant world of third-party libraries that help make Python even more wonderful. We'll go on a breezy, example-filled tour through some of my favorites, from treasures in the standard library to great third-party packages that I don't think I could live without, and we'll touch on some of the fuzzier aspects of the Python culture that make it such a joy to be part of.
The document provides an overview and introduction to PHP including:
- PHP is a server-side scripting language used for web development. It was created by Rasmus Lerdorf in 1995.
- It discusses PHP basics like syntax, variables, strings, arrays, functions, and how to interact with forms and retrieve data from web pages.
- It also covers using PHP to communicate with backend databases and services to fetch and parse XML/JSON data.
The why and how of moving to PHP 5.4/5.5Wim Godden
With PHP 5.5 out and many production environments still running 5.2 (or older), it's time to paint a clear picture on why everyone should move to 5.4 and 5.5 and how to get code ready for the latest version of PHP. In this talk, we'll migrate an old piece of code using some standard and some very non-standard tools and techniques.
The "n" in the PrintCompilation output indicates that the method was not compiled, but is on deck to be compiled. So in this case, java.lang.Object::hashCode was not yet compiled, but is a candidate for compilation if/when it is called more.
This document summarizes an advanced Python programming course, covering topics like performance tuning, garbage collection, and extending Python. It discusses profiling Python code to find bottlenecks, using more efficient algorithms and data structures, optimizing code through techniques like reducing temporary objects and inline functions, leveraging faster tools like NumPy, writing extension modules in C, and parallelizing computation across CPUs and clusters. It also explains basic garbage collection algorithms like reference counting and mark-and-sweep used in CPython.
Practical tips for dealing with projects involving legacy code. Covers investigating past projects, static analysis of existing code, and methods for changing legacy code.
Presented at PHP Benelux '10
- Node.js is a platform for building scalable network applications. It uses non-blocking I/O and event-driven architecture to handle many connections concurrently using a single-threaded event loop.
- Node.js uses Google's V8 JavaScript engine and provides a module system, I/O bindings, and common protocols to build network programs easily. Popular uses include real-time web applications, file uploading, and streaming.
- While Node.js is ready for many production uses, things like lost stack traces and limited ability to utilize multiple cores present challenges for some workloads. However, an active community provides support through mailing lists, IRC, and over 1,000 modules in its package manager.
The document discusses several Java and Android internals topics:
1. How ArrayList and StringBuilder work internally using arrays and memory copying as the size increases. This can lead to inefficient memory usage.
2. How inner classes are implemented by compilers by generating additional accessor methods, increasing method count and affecting optimizations.
3. How the Android zygote process improves startup and memory usage by loading the framework once and sharing it across apps.
4. How the CPU cache works and how optimizing code to improve cache locality can significantly increase performance despite doing less work.
5. Issues like memory fragmentation that can occur if the Android garbage collector and compactor are unable to run due to the app being
How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016Codemotion
One of the primary strengths of Go programming language is a built-in first-class support for concurrency. We're going to learn about it in a completely new way, using interactive 3D visualizations, which help us understand the complex but astonishing world of modern concurrent software. We'll see what’s happening inside the real code—from a simple “Hello, World” to real production-level high-loaded servers, and learn different approaches and concurrency patterns that are used for building concurrent pipelines and algorithms. And we'll do it all in 3D!
This document provides an overview and introduction to Node.js. It discusses that Node.js is a platform for building scalable network applications using JavaScript and uses non-blocking I/O and event-driven architecture. It was created by Ryan Dahl in 2009 and uses Google's V8 JavaScript engine. Node.js allows building web servers, networking tools and real-time applications easily and efficiently by handling concurrent connections without threads. Some popular frameworks and modules built on Node.js are also mentioned such as Express.js, Socket.IO and over 1600 modules in the npm registry.
Similar to PHP 7 – What changed internally? (PHP Barcelona 2015) (20)
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
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.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
11. Memory optimization
• Reduce number of allocations
• Reduce memory usage
• Memory access has high latency
CPU L1D
1ns 32KB
12. Memory optimization
• Reduce number of allocations
• Reduce memory usage
• Memory access has high latency
CPU
4ns
L2
256 KB
L1D
1ns 32KB
13. Memory optimization
• Reduce number of allocations
• Reduce memory usage
• Memory access has high latency
CPU L312ns
a few MB
4ns
L2
256 KB
L1D
1ns 32KB
14. RAM
100ns
Memory optimization
• Reduce number of allocations
• Reduce memory usage
• Memory access has high latency
CPU L312ns
a few MB
4ns
L2
256 KB
L1D
1ns 32KB
15. RAM
100ns
Memory optimization
• Reduce number of allocations
• Reduce memory usage
• Memory access has high latency
• Less data => more fits into the cache
CPU L312ns
a few MB
4ns
L2
256 KB
L1D
1ns 32KB
17. Memory optimization
• Reduce number of allocations
• Reduce memory usage
• Reduce indirection
• Pointer points to pointer pointing to pointer pointing to pointer pointing to
pointer pointing to pointer pointing to what you actually want
What you
have
What you
want
18. Memory optimization
• Reduce number of allocations
• Reduce memory usage
• Reduce indirection
• Pointer points to pointer pointing to pointer pointing to pointer pointing to
pointer pointing to pointer pointing to what you actually want
• Fewer memory accesses
What you
have
What you
want
41. PHP 5 without zval PHP 7 with zval
Allocations: 2 + 1 per element 2
Size: 72 + 80 per element 56 + 36 per element
Indirections (lookup): 4 2
Arrays: comparison
42. PHP 5 without zval PHP 7 with zval
Allocations: 2 + 1 per element 2
Size: 72 + 80 per element 56 + 36 per element
Indirections (lookup): 4 2
PHP 5 w/ unique zvals
2 + 2 per element
72 + 112 per element
4
Arrays: comparison
70. Virtual machine – inlined internal functions
• Functions with custom opcodes:
• strlen()
• is_*()
• defined()
• call_user_func()
• call_user_func_array()
• Only in global scope or for fully qualified calls
namespace foo;
echo strlen($str);
71. Virtual machine – inlined internal functions
• Functions with custom opcodes:
• strlen()
• is_*()
• defined()
• call_user_func()
• call_user_func_array()
• Only in global scope or for fully qualified calls
namespace foo;
echo strlen($str);
Is this strlen() or foostrlen()?
72. Virtual machine – inlined internal functions
• Functions with custom opcodes:
• strlen()
• is_*()
• defined()
• call_user_func()
• call_user_func_array()
• Only in global scope or for fully qualified calls
namespace foo;
echo strlen($str);
This is definitely strlen()!
81. Opcache
• File cache
• Alternative (or addition) to SHM
• Shared hosting? PHP restart / cache reset?
82. Opcache
• File cache
• Alternative (or addition) to SHM
• Shared hosting? PHP restart / cache reset?
• Time for 500 sequential WP 4.1 requests
SHM 3 s
File cache 6 s
No cache 24 s