protected function cleanupCacheDirs()
    {
        if (($benchmark = !empty($this->options['benchmark']) && $this->options['benchmark'] === 'details')) {
            $time = microtime(true);
        }
        $public_cache_dir  = $this->cacheDir($this::DIR_PUBLIC_TYPE);
        $private_cache_dir = $this->cacheDir($this::DIR_PRIVATE_TYPE);
        $min_mtime         = strtotime('-'.$this->cache_expiration_time);

        /** @type $_dir_file \RecursiveDirectoryIterator For IDEs. */
        foreach ($this->dirRegexIteration($public_cache_dir, '/\/compressor\-part\..*$/') as $_dir_file) {
            if (($_dir_file->isFile() || $_dir_file->isLink()) && $_dir_file->getMTime() < $min_mtime - 3600) {
                if ($_dir_file->isWritable()) {
                    unlink($_dir_file->getPathname());
                }
            }
        }
        /** @type $_dir_file \RecursiveDirectoryIterator For IDEs. */
        foreach ($this->dirRegexIteration($private_cache_dir, '/\/compressor\-parts\..*$/') as $_dir_file) {
            if (($_dir_file->isFile() || $_dir_file->isLink()) && $_dir_file->getMTime() < $min_mtime) {
                if ($_dir_file->isWritable()) {
                    unlink($_dir_file->getPathname());
                }
            }
        } // unset($_dir_file); // Housekeeping.

        if ($benchmark && !empty($time)) {
            $this->benchmark->addTime(
                __FUNCTION__,
                $time, // Caller, start time, task performed.
                'cleaning up the public/private cache directories'
            );
        }
    }