求phpexcel处理大文件时内存占用过大的解决方案
phpexcel由于是内存处理机制,当excel文件行数或列数过多时占用内存会瞬间几百M,由于服务器原因我无法申请更多的内存,所以只能想法从根本上解决或规避问题,比方说处理完一个excel文件或其中一个sheet页就释放内存然后再处理下一个,网上搜了一圈,没一个写的详细完整的,求大神帮忙调通,非常期待。。
PS:
1. 我使用的版本是1.76,设置过使用文件之类的参数,完全不起作用;
2. 小文件已调通
3. 上面已经提到了,不用再说调大内存限制了
处理excel代码如下:执行报错
Fatal error: Using $this when not in object context in E:\wamp\www\uploadify\PHPExcel.php on line 796
function parse_excel_file($filename)
{
$php_reader = new PHPExcel_Reader_Excel2007();
$php_reader = PHPExcel_IOFactory::createReaderForFile($filename);
$php_excel = $php_reader->load($filename);
$current_sheet = $php_excel->getSheet(0);
$all_column = $current_sheet->getHighestColumn();
$all_row = $current_sheet->getHighestRow();
$list = array();
for ($row_index = 2; $row_index {
$row_val = '';
for ($col_index = 'A'; $col_index {
$addr = $col_index . $row_index;
$cell = $current_sheet->getCell($addr)->getValue();
if ($cell instanceof PHPExcel_RichText)
{
$cell = $cell->__toString();
$row_val = $row_val . ',' . $cell;
}
array_push($list, $row_val);
}
PHPExcel::Destroy();
return $list;
}
phpexcel.php中增加代码如下:
public function Destroy() {
foreach($this->_workSheetCollection as $index => $dummy) {
$this->_workSheetCollection[$index]->Destroy();
$this->_workSheetCollection[$index] = null;
}
}
worksheet.php中增加代码如下:
public function Destroy() {
foreach($this->_cellCollection as $index => $dummy) {
$this->_cellCollection[$index] = null;
}
}
回复讨论(解决方案)
一次性导出多少条?
调用方式应该是:$php_excel ->Destroy();
phpexcel 库耗内存太严重 计算时全部在内存缓存
曾经ini_set('memory_limit','1024M');只能导出1W条数据
最后我们采用了csv 流式文件 世界清静了不少
调用方式应该是:$php_excel ->Destroy();
phpexcel 库耗内存太严重 计算时全部在内存缓存
曾经ini_set('memory_limit','1024M');只能导出1W条数据
最后我们采用了csv 流式文件 世界清静了不少
感谢提示,用了你的写法确实不报错了,但是内存没有destroy成功,还是在一次次增长,你说的csv是不用插件直接导出那种还是phpexcel的导出csv?我这里是读取

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Bei mechanischen Festplatten oder SATA-Solid-State-Laufwerken werden Sie die erhöhte Software-Laufgeschwindigkeit spüren. Wenn es sich um eine NVME-Festplatte handelt, spüren Sie sie möglicherweise nicht. 1. Importieren Sie die Registrierung in den Desktop und erstellen Sie ein neues Textdokument, kopieren Sie den folgenden Inhalt, fügen Sie ihn ein, speichern Sie ihn als 1.reg, klicken Sie dann mit der rechten Maustaste, um den Computer zusammenzuführen und neu zu starten. WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement]"DisablePagingExecutive"=d

Kürzlich hat Xiaomi mit dem Xiaomi 14Pro ein leistungsstarkes High-End-Smartphone herausgebracht, das nicht nur über ein stilvolles Design verfügt, sondern auch über interne und externe schwarze Technologie verfügt. Das Telefon verfügt über Spitzenleistung und hervorragende Multitasking-Fähigkeiten, sodass Benutzer ein schnelles und reibungsloses Mobiltelefonerlebnis genießen können. Die Leistung wird jedoch auch vom Speicher beeinflusst. Viele Benutzer möchten wissen, wie sie die Speichernutzung des Xiaomi 14Pro überprüfen können. Wie überprüfe ich die Speichernutzung auf dem Xiaomi Mi 14Pro? Einführung in die Überprüfung der Speichernutzung des Xiaomi 14Pro. Öffnen Sie die Schaltfläche [Anwendungsverwaltung] in den [Einstellungen] des Xiaomi 14Pro-Telefons. Um die Liste aller installierten Apps anzuzeigen, durchsuchen Sie die Liste und suchen Sie die App, die Sie anzeigen möchten. Klicken Sie darauf, um die Seite mit den App-Details aufzurufen. Auf der Seite mit den Bewerbungsdetails

Laut Nachrichten dieser Website vom 3. September berichteten die koreanischen Medien etnews gestern (Ortszeit), dass die „HBM-ähnlichen“ mobilen Speicherprodukte mit Stapelstruktur von Samsung Electronics und SK Hynix nach 2026 kommerzialisiert werden. Quellen zufolge betrachten die beiden koreanischen Speichergiganten gestapelten mobilen Speicher als wichtige zukünftige Einnahmequelle und planen, den „HBM-ähnlichen Speicher“ auf Smartphones, Tablets und Laptops auszudehnen, um End-Side-KI mit Strom zu versorgen. Früheren Berichten auf dieser Website zufolge heißt das Produkt von Samsung Electronics LPWide I/O-Speicher und SK Hynix nennt diese Technologie VFO. Die beiden Unternehmen haben ungefähr den gleichen technischen Weg gewählt, nämlich die Kombination von Fan-Out-Verpackungen und vertikalen Kanälen. Der LPWide I/O-Speicher von Samsung Electronics hat eine Bitbreite von 512

Dem Bericht zufolge sagte Dae Woo Kim, Geschäftsführer von Samsung Electronics, dass Samsung Electronics auf der Jahrestagung 2024 der Korean Microelectronics and Packaging Society die Verifizierung der 16-schichtigen Hybrid-Bonding-HBM-Speichertechnologie abschließen werde. Es wird berichtet, dass diese Technologie die technische Verifizierung bestanden hat. In dem Bericht heißt es außerdem, dass diese technische Überprüfung den Grundstein für die Entwicklung des Speichermarktes in den nächsten Jahren legen werde. DaeWooKim sagte, dass Samsung Electronics erfolgreich einen 16-schichtigen gestapelten HBM3-Speicher auf Basis der Hybrid-Bonding-Technologie hergestellt hat. Das Speichermuster funktioniert in Zukunft normal für die Massenproduktion von HBM4-Speicher. ▲Bildquelle TheElec, wie unten: Im Vergleich zum bestehenden Bonding-Prozess müssen beim Hybrid-Bonding keine Unebenheiten zwischen den DRAM-Speicherschichten hinzugefügt werden, sondern es werden die oberen und unteren Schichten direkt mit Kupfer verbunden.

Diese Website berichtete am 21. März, dass Micron nach der Veröffentlichung seines vierteljährlichen Finanzberichts eine Telefonkonferenz abgehalten habe. Sanjay Mehrotra, CEO von Micron, sagte auf der Konferenz, dass HBM im Vergleich zu herkömmlichem Speicher deutlich mehr Wafer verbraucht. Micron sagte, dass der derzeit fortschrittlichste HBM3E-Speicher bei der Produktion derselben Kapazität auf demselben Knoten dreimal mehr Wafer verbraucht als Standard-DDR5, und es wird erwartet, dass HBM4 dieses Verhältnis in Zukunft weiter erhöhen wird, wenn die Leistung verbessert und die Verpackungskomplexität zunimmt . Unter Bezugnahme auf frühere Berichte auf dieser Website ist diese hohe Quote teilweise auf die niedrige Ertragsrate von HBM zurückzuführen. HBM-Speicher ist mit mehrschichtigen DRAM-Speicher-TSV-Verbindungen gestapelt. Ein Problem mit einer Schicht bedeutet, dass die gesamte

Zu den häufigsten Herausforderungen, mit denen Algorithmen für maschinelles Lernen in C++ konfrontiert sind, gehören Speicherverwaltung, Multithreading, Leistungsoptimierung und Wartbarkeit. Zu den Lösungen gehören die Verwendung intelligenter Zeiger, moderner Threading-Bibliotheken, SIMD-Anweisungen und Bibliotheken von Drittanbietern sowie die Einhaltung von Codierungsstilrichtlinien und die Verwendung von Automatisierungstools. Praktische Fälle zeigen, wie man die Eigen-Bibliothek nutzt, um lineare Regressionsalgorithmen zu implementieren, den Speicher effektiv zu verwalten und leistungsstarke Matrixoperationen zu nutzen.

Laut Nachrichten dieser Website vom 6. Mai hat Lexar den Übertaktungsspeicher der Ares Wings of War-Serie DDR57600CL36 auf den Markt gebracht. Das 16GBx2-Set wird am 7. Mai um 0:00 Uhr gegen eine Anzahlung von 50 Yuan im Vorverkauf erhältlich sein 1.299 Yuan. Der Lexar Wings of War-Speicher verwendet Hynix A-Die-Speicherchips, unterstützt Intel In Bezug auf die Wärmeableitung ist dieses Speicherset mit einer 1,8 mm dicken Wärmeableitungsweste aus Vollaluminium ausgestattet und mit dem exklusiven wärmeleitenden Silikonfettpad von PMIC ausgestattet. Der Speicher verwendet 8 hochhelle LED-Perlen und unterstützt 13 RGB-Beleuchtungsmodi.

Bei einigen Benutzern ist bei der Verwendung von Win10 eine Speicherfehlermeldung namens „Der Speicher kann nicht beschrieben werden“ aufgetreten. Was ist los? Nachfolgend teilt Ihnen der Editor die Lösung für die Windows 10-Systemmeldung „Der Speicher kann nicht beschrieben werden“ mit. Drücken Sie win+r, um die Ausführungsfunktion auf dem Computer zu öffnen, geben Sie „services“ und „msc“ ein und klicken Sie dann auf „OK“. 2. Suchen Sie im Dienstefenster nach dem Windows-Verwaltungsinstrumentationsdienst, klicken Sie auf „Beenden“ und dann auf „OK“. 3. Drücken Sie weiterhin Win+R, um die Ausführungsfunktion des Computers zu öffnen und einzugeben
