关键词:
面试题:
有两个文件文件,大小都超过了1G,一行一条数据,每行数据不超过500字节,两文件中有一部分内容是完全相同的,请写代码找到相同的行,并写到新文件中。PHP最大允许内内为256M。
解题步骤
遇到此问题,首先先尝试从小范围解决,比如题目中,要求查找两个文件相同的行,那么我们可以先读取文件到内存中(数组),然后通过array_intersect()函数获取两个数组的交集,即为相同的行,此时,小范围的问题已经找到解决方法了。
再回到问题本身,两个文件都超过1G,PHP最大使用内存是256M(也有可能是128M,甚至10M,这不用担心),在此条件下,直接读取文件到内存,显然不可行,我们可以考虑使用split命令将其分割成若干个小文件,再运用上面的思路逐个对比小文件,得到的结果,再合并到结果集里面,然后再去重,即得到题目要求。
步骤一、通过php生成两个大容量数据文件
<?php
function build_file($max)
$file1 = fopen("/tmp/file1.txt", "w");
$file2 = fopen("/tmp/file2.txt", "w");
for($i =0; $i < $max; $i++)
$text1 = md5(microtime() . rand(100, 999))
Ktor - 处理大文件操作而不会发生内存泄漏
】Ktor-处理大文件操作而不会发生内存泄漏【英文标题】:Ktor-Handlelargefileoperationswithoutmemoryleak【发布时间】:2021-03-1402:07:07【问题描述】:我对后端开发非常陌生。基本上,我想创建一个健壮且简单的应用程序,它将接受参数... 查看详情
您如何在内存非常有限的嵌入式系统上处理大数据传输?
】您如何在内存非常有限的嵌入式系统上处理大数据传输?【英文标题】:Howdoyouhandlelargedatatransfersonverymemoryconstrained,embeddedsystems?【发布时间】:2010-09-2611:05:07【问题描述】:我有一个微控制器,它必须从PC串行端口(115200波特... 查看详情
内存映射文件处理大文件
先说结论:使用内存映射文件来处理大文件可以提高效率。 为什么呢?我们先来看看如果不使用内存映射文件的处理流程是怎样的,首先我们得先读出磁盘文件的内容到内存中,然后修改,最后回写到磁盘上。第一步读磁盘... 查看详情
如何使用 php 从大文本文件中提取包含信息的值
】如何使用php从大文本文件中提取包含信息的值【英文标题】:HowcanIExtractvalueswithinformationfrombigtextfileusingphp【发布时间】:2021-04-0815:08:37【问题描述】:我正在尝试从文本文件中获取一些数据,这些数据在每行随机重复一次我... 查看详情
在内存有限的系统上写入大文件时如何避免 mapFailed() 错误
】在内存有限的系统上写入大文件时如何避免mapFailed()错误【英文标题】:HowdoIavoidmapFailed()errorwhenwritingtolargefileonsystemwithlimitedmemory【发布时间】:2016-11-1110:11:44【问题描述】:我刚刚在我的opensrc库代码中遇到一个错误,该代码... 查看详情
Java中的大数据处理
】Java中的大数据处理【英文标题】:BigDataProcessingInJava【发布时间】:2017-12-1812:09:59【问题描述】:我正在做一个项目,我收到大约10个文件,每个文件大小为200GB。我的项目要求是从每个文件中提取数据并与其他文件进行连接... 查看详情
删除大文件中的一行内容
...如果想要删除其中的某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件。这对于小文件来说当然没问题,但是如果要处理一个很大的文本,比如GB级别的文本时,这种方法不仅需要占用很大内存,而且一次... 查看详情
如何在 ios 中处理大文件上传?
...等待文件上传。由于苹果不允许应用程序在后台运行超过有限的时间。如何确保我的文件已上传。我正在使用afnetworking来设置 查看详情
PHP - 从 CSS 文件中提取图像的所有路径的正则表达式
】PHP-从CSS文件中提取图像的所有路径的正则表达式【英文标题】:PHP-RegularexpressiontoextractallpathstotheimagesfromwithintheCSSfile【发布时间】:2012-06-2806:59:43【问题描述】:我正在尝试查找正则表达式,它将从css文件中提取所有路径。... 查看详情
从一个非常大的 MySQL 转储文件中以 csv 格式获取数据
...语句包含所有数据并且该行太长。因此,正常做法会导致内存问题,因为该行(即所有数 查看详情
从python内存中的MPEG(.ts)文件中提取音频,而不将MPEG写入文件
】从python内存中的MPEG(.ts)文件中提取音频,而不将MPEG写入文件【英文标题】:ExtractaudiofromaMPEG(.ts)fileinmemoryinpython,WithoutwritingMPEGtoafile【发布时间】:2020-02-2616:10:09【问题描述】:我正在做一个项目,该项目需要从.ts(MPEG-2传... 查看详情
局域网大文件分片上传处理
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表格数据、... 查看详情
linux两个大数据量的文件如何比较
ubuntu系统下,两个文本文件,每个都有两列,空格分隔,每个文件的行数都有70万以上,现要比较两个文件的第一列内容相同的;第一个文件有,而第二个没有的;第二个没有而第一个有的,使用awk'ARGIND=1a[$1]ARGIND>1$$!($1ina)p... 查看详情
从VBA中的PowerPoint文件中提取所有文本
...-只关心单词。我可以通过PPT中的^A^C和记事本中的^V手动处理文件;然后 查看详情
异常的内存分配php
】异常的内存分配php【英文标题】:unusualmemoryallocationphp【发布时间】:2013-08-1914:40:00【问题描述】:我正在尝试从许多html文件中提取数据文件。为了快速完成,我不使用DOM解析器,而是使用简单的strpos()。如果我从大约200000个... 查看详情
从(非索引/非顺序)大文件中提取新行的好方法[重复]
】从(非索引/非顺序)大文件中提取新行的好方法[重复]【英文标题】:Goodwaytopullnewlinesfrom(nonindexed/nonsequential)hugefile[duplicate]【发布时间】:2014-03-2121:49:08【问题描述】:我有一个csv大文件(>1GB)位于网络文件存储中,每周都... 查看详情
如何从 PHP 文件中提取 HTML?
】如何从PHP文件中提取HTML?【英文标题】:HowtoextractHTMLfromPHPfiles?【发布时间】:2012-01-2006:53:42【问题描述】:我有一堆PHP文件,我想从中提取最终的HTML结果。例如,如果PHP文件内容类似于:<ulid=\'<%echo($newsListId)%>\'>//P... 查看详情
PHP从文件夹中提取随机图像
】PHP从文件夹中提取随机图像【英文标题】:PHPpullrandomimagefromfolder【发布时间】:2012-05-0223:14:56【问题描述】:我想知道从文件夹中提取随机图像的“更好”方式。就像说,让php从文件夹中选择一个随机图像,而不是搜索并创... 查看详情