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.
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
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
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.
“Big Data includes huge volume, high velocity and extensible variety of data, both structured and unstructured. Analysis and examination of this data plays a big role in making a better decisions and lead to strategic business moves. In this research, we are focusing on analysis of Moodle e-learning platform database with aim of improving the educational process. Using the concept of learning analytics we are trying to better understand teaching and learning processes in order to get as much as possible from educators and learners which are the main actors in the mentioned activities. The standard procedures that are specific to the databases will take a lot more time to do this. To facilitate this process, big data processing tools are used. Here, we also present the possibility of analyzing big data in the cloud. For the purpose of this research, we developed a framework for big data analysis.”
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
MoodleBites Theme Design Level 2
Updated for 2019 – for Moodle 3.6
If you are interested in continuing in Moodle Theme development, and have some development experience, experience with php, and experience with Moodle Themes, then this MoodleBites Theme Design Level 2 is for you! You should have completed, or be familiar with the content of MoodleBites Theme Design Level 1 before taking this advanced course.
This course is 3 weeks in duration, asynchronous, and completely online. Each week contains approximately 2-4 hours work, although this varies depending on your experience with Moodle and themes in general, and how much extension work you wish to complete.
The course is focused on adapting existing Themes (standard Themes and plugin Themes). After successfully completing this course:
- You will understand how Moodle Themes really work.
- You will be able to customise existing Themes.
- You will be able to use simple debugging tools and understand important aspects of the Moodle Theme development and testing process.
There are no live sessions, but participants are encouraged to participate in forums and to share their practical work for others to see and learn from. Note that for this course you should be using Moodle 3.5 or later.
- Here we cover the basic background of Moodle as a PHP app and its dependencies
- Where to find everything in the project (Dev doc, dev forums, chats, tracker … not only what those things are but when you need them).
- Tools that developers recommend to develop for Moodle (what and why and when)
- How to start and manage development of your own Moodle plugin
Contents of the “Moodle Development” course include:
- Moodle Development Process
- Plugin Types
- Developing a plugin
- Language strings
- Anatomy of a Moodle page
- Simple Input\Output
- Navigation and Settings
- Querying the Database
- Creating New Database Tables
- Roles, Capabilities, Contexts
- Forms API
- Acceptance Testing Using behat
- Unit Testing Using phpunit
- Handling Files
- Events and Logging
- Web Services and AJAX
- Backup and Restore
- Cache API
- Other Plugin Types
- Further Reading and Resources
A collection of views, functions and procedures to help MySQL administrators get insight in to MySQL Database usage.