Inhaltsverzeichnis
回复讨论(解决方案)
Heim Backend-Entwicklung PHP-Tutorial 求phpexcel处理大文件时内存占用过大的解决方案

求phpexcel处理大文件时内存占用过大的解决方案

Jun 23, 2016 pm 01:48 PM
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?我这里是读取
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Optimierung des großen Speichers. Was soll ich tun, wenn der Computer auf 16g/32g Speichergeschwindigkeit aktualisiert wird und es keine Änderung gibt? Optimierung des großen Speichers. Was soll ich tun, wenn der Computer auf 16g/32g Speichergeschwindigkeit aktualisiert wird und es keine Änderung gibt? Jun 18, 2024 pm 06:51 PM

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

Mar 18, 2024 pm 02:19 PM

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

Quellen zufolge werden Samsung Electronics und SK Hynix nach 2026 gestapelten mobilen Speicher kommerzialisieren Quellen zufolge werden Samsung Electronics und SK Hynix nach 2026 gestapelten mobilen Speicher kommerzialisieren Sep 03, 2024 pm 02:15 PM

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

Samsung gab den Abschluss der Verifizierung der 16-Layer-Hybrid-Bonding-Stacking-Prozesstechnologie bekannt, die voraussichtlich in großem Umfang im HBM4-Speicher zum Einsatz kommen wird Samsung gab den Abschluss der Verifizierung der 16-Layer-Hybrid-Bonding-Stacking-Prozesstechnologie bekannt, die voraussichtlich in großem Umfang im HBM4-Speicher zum Einsatz kommen wird Apr 07, 2024 pm 09:19 PM

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.

Micron: HBM-Speicher verbrauchen das Dreifache des Wafervolumens und die Produktionskapazität ist grundsätzlich für nächstes Jahr gebucht Micron: HBM-Speicher verbrauchen das Dreifache des Wafervolumens und die Produktionskapazität ist grundsätzlich für nächstes Jahr gebucht Mar 22, 2024 pm 08:16 PM

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

Implementierung von Algorithmen für maschinelles Lernen in C++: Häufige Herausforderungen und Lösungen Implementierung von Algorithmen für maschinelles Lernen in C++: Häufige Herausforderungen und Lösungen Jun 03, 2024 pm 01:25 PM

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.

Lexar bringt Ares Wings of War DDR5 7600 16 GB x2-Speicherkit auf den Markt: Hynix A-Die-Partikel, 1.299 Yuan Lexar bringt Ares Wings of War DDR5 7600 16 GB x2-Speicherkit auf den Markt: Hynix A-Die-Partikel, 1.299 Yuan May 07, 2024 am 08:13 AM

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.

Was soll ich tun, wenn der Speicher in Win10 nicht beschrieben werden kann?_Wie löse ich das Problem, dass der Speicher in Win10 nicht beschrieben werden kann? Was soll ich tun, wenn der Speicher in Win10 nicht beschrieben werden kann?_Wie löse ich das Problem, dass der Speicher in Win10 nicht beschrieben werden kann? Mar 25, 2024 am 11:01 AM

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

See all articles