Recursive search on a linux system (1 thread) from root including subdirectories causes 8.4 GB Ram and counting
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C
- Estrellas
- 40.4k
- Forks
- 8.2k
- Merge medio
- 2 d 13 h
- PR fusionados (30 d)
- 96
Descripción
Description
The following code:
<?php
/**
* @throws DirectoryCreateException
* @throws Exception
*/
public function search($flags, $options): void
{
$object = $this->object();
$data = new Data($object->data());
if(!property_exists($options, 'name')){
throw new Exception('Option -name not set');
}
if(!property_exists($options, 'directory')){
throw new Exception('Option -directory not set');
}
$dir = new Dir();
$list = $dir->read($options->directory, true);
foreach($list as $file){
if($file->name === $options->name){
breakpoint('match');
}
}
breakpoint($list);
}
Resulted in this output:
15625 root 20 0 9139760 8.5g 2304 R 99.7 55.0 15:11.97 php
15625 root 20 0 13.3g 13.0g 2304 R 100.0 83.9 24:48.36 php
But I expected this output instead:
15625 root 20 0 9139760 1.5g 2304 R 99.7 3.0 15:11.97 php
What i meant is this:
I keep a list of all files on the system and searches for a match.
I can create a search from root directory and go 1 subdirectory at a time but my opinion is that searching on a root device should work like a charm without complicating stuff too much...
PHP Version
PHP 8.4.12 (cli) (built: Sep 7 2025 14:06:59) (NTS)
Copyright (c) The PHP Group
Built by Debian
Zend Engine v4.4.12, Copyright (c) Zend Technologies
with Zend OPcache v8.4.12, Copyright (c), by Zend Technologies
Operating System
Debian bookworm
CLI:
app raxon/basic file search -directory=/ -name=Snow.js
No response
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el comando CLI proporcionado, PHP 8.4.12 y el entorno Debian bookworm; después, reproduce el crecimiento de memoria mientras rastreas la llamada a Dir::read de la aplicación. Aísla si el comportamiento proviene de PHP o del código de la aplicación y documenta un caso mínimo reproducible y el comportamiento esperado de la memoria.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- debian, linux, php
- Área
- cli, operating-systems
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100