


How to deal with phpQuery taking up too much memory_PHP tutorial
phpQuery is an open source project similar to jQuery implemented in php, which can parse web page elements in jQuery syntax on the server side. Compared with regular or other methods of matching web pages, phpQuery is much more convenient to use.
When using phpQuery to collect web pages, I encountered a problem: after processing a large number of web pages, phpQuery occupied an amazing amount of memory (soon exceeding 1G).
For example, this code:
while (true) {
phpQuery::newDocumentFile($htmlFile);
// Processing Web element...
echo memory_get_usage() . "n";
}
Run the above code with caution, it will use up your memory quickly.
After checking the source code of phpQuery, I finally discovered the problem. phpQuery will generate a DOMDocumentWrapper object every time it processes a web page, and each DOMDocumentWrapper object will be saved in the static member $documents (phpQuery::createDocumentWrapper). This variable is an array, which is increased by one each time a web page array element is parsed.
phpQuery::$documents[$wrapper->id] = $wrapper;
After you find the problem, it is easy to solve it. Every time you parse a web page, just leave phpQuery::$documents blank. .
while (true) {
phpQuery::newDocumentFile($htmlFile);
// Process web page elements...
phpQuery::$documents = array();
echo memory_get_usage() . "n";
}
Memory usage Stable.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.
