יול 21

Performance recommendations | ScholarLMS Support

Moodle can be made to perform very well, at small usage levels or scaling up to many thousands of users. The factors involved in performance are basically the same as for any PHP-based database-driven system. When trying to optimize your server, try to focus on the factor which will make the most difference to the user. For example, if you have relatively more users browsing than accessing the database, look to improve the webserver performance.

Source: Performance recommendations | ScholarLMS Support

יול 13

NoiseByNorthwest/php-spx: A simple & straight-to-the-point PHP profiling extension with its built-in web UI

SPX, which stands for Simple Profiling eXtension, is just another profiling extension for PHP.
It differentiates itself from other similar extensions as being:

  • totally free and confined to your infrastructure (i.e. no data leaks to a SaaS).
  • very simple to use: just set an environment variable (command line) or switch on a radio button (web page) to profile your script. Thus, you are free of:
    • manually instrumenting your code (Ctrl-C a long running command line script is even supported).
    • using a dedicated browser extension or command line launcher.
  • multi metrics capable: 21 currently supported (various time metrics, memory, included files, objects in use, I/O…).
  • able to collect data without losing context. For example Xhprof (and potentially its forks) aggregates data per caller / callee pairs, which implies the loss of the full call stack and forbids timeline or Flamegraph based analysis.
  • shipped with its web UI which allows to:
    • enable / configure profiling for the current browser session
    • list profiled script reports
    • select a report for in-depth analysis, featuring these interactive visualizations:
      • timeline (scale to millions of function calls)
      • flat profile
      • Flamegraph

Source: NoiseByNorthwest/php-spx: A simple & straight-to-the-point PHP profiling extension with its built-in web UI

יול 12

Retrace Application Performance Management (APM) – Stackify

Collect Code-Level Performance Tracing

Retrace collects an amazing amount of details about what is happening at the code level within your application. It is a gold mine for developers who are trying to troubleshoot bugs and look for ways to optimize their code.

  • Web request length and context details
  • SQL queries
  • Log statements and exceptions
  • Interaction with dozens of dependencies like NoSQL, caching, etc
  • External HTTP web service calls

Source: Retrace Application Performance Management (APM) – Stackify

יול 12

Mission control center for PHP application performance | Tideways

Your mission control center for PHP application performance

Tideways saves you time by taking the guesswork out of your app’s backend performance. Gain detailed insights, spot performance bottlenecks, and get real-time error detection alerts.

Source: Mission control center for PHP application performance | Tideways

פבר 24

PMM Query Analytics

The QAN is a special dashboard which enables database administrators and application developers to analyze database queries over periods of time and find performance problems. QAN helps you optimize database performance by making sure that queries are executed as expected and within the shortest time possible. In case of problems, you can see which queries may be the cause and get detailed metrics for them.

Source: PMM Query Analytics

אוג 11

Netflix/dynomite: A generic master-master dynamo implementation for different k-v storage engines – Redis and Memcached

As the request goes through a Dynomite node, the data gets replicated and eventually stored in the target storage. The data can then be read back either through Dynomite or directly from the underlying storage’s API.

Dynomite and the target storage engine run on the same node. Clients connect to Dynomite, and requests are proxied to either the storage engine on the same node or to Dynomite processes running on other nodes.

Dynomite, inspired by Dynamo whitepaper, is a thin, distributed dynamo layer for different storage engines and protocols. Currently these include Redis and Memcached. Dynomite supports multi-datacenter replication and is designed for high availability.

The ultimate goal with Dynomite is to be able to implement high availability and cross-datacenter replication on storage engines that do not inherently provide that functionality. The implementation is efficient, not complex (few moving parts), and highly performant.

מקור: Netflix/dynomite: A generic dynamo implementation for different k-v storage engines

Also, checkout (alternatives?):

יונ 04

Php Inspections (EA Extended) :: JetBrains Plugin Repository

This plugin is a Static Code Analysis tool for PHP (aka inspections in JetBrains products).

It covers:
– architecture related issues (e.g. design pattern violations)
– weak types control and possible code construct simplifications
– performance issues
– non-optimal, duplicate and suspicious “if” conditions
– validation of magic methods usage
– regular expressions
– validation of exception handling workflow
– compatibility issues
– variety of time-consuming bugs
– PhpUnit API usage
– security issues

מקור: Php Inspections (EA Extended) :: JetBrains Plugin Repository