MATLAB:与少数(数千)个大文件相比,很多(数百万)个小文件有啥问题吗?
Posted
技术标签:
【中文标题】MATLAB:与少数(数千)个大文件相比,很多(数百万)个小文件有啥问题吗?【英文标题】:MATLAB: Are there any problems with many (millions) small files compared to few (thousands) large files?MATLAB:与少数(数千)个大文件相比,很多(数百万)个小文件有什么问题吗? 【发布时间】:2017-08-10 05:49:37 【问题描述】:我正在开发 MATLAB 中的实时测试软件。在用户输入时,我想从 50-200 个高分辨率图像(~25 MB)中提取一个(或几个相邻)像素的值。
我的问题是总图像集太大(约 2000 张图像)要存储在 RAM 中,因此我需要在每次用户输入后从磁盘读取 50-200 张图像中的每一张,这当然会降低速度!
所以我正在考虑将图像拆分为子图像(~100x100 像素)并分别保存。这将使图像读取过程足够快。
这种方法有什么我应该注意的问题吗?例如,我读到有人在复制许多小文件时遇到问题,这会影响我,即使图像读取速度变慢吗?
【问题讨论】:
使用'PixelRegion'
的imread 选项可以读取子图像。
谢谢!这使得每个输入的响应时间从几分钟缩短到几秒钟,这对于现在来说已经足够了!
【参考方案1】:
rahnema1 是对的 - imread(...,'PixelRegion') 将加快读取操作。如果这对您来说还不够,即使您的文件没有碎片,也许是时候考虑一些数据库了? 磁盘操作始终是瓶颈。首先我们切换到磁盘缓存,然后是分布式存储,然后是 RAID,再过一段时间,我们完成了内存数据库。您应该选择合理的访问速度。
【讨论】:
以上是关于MATLAB:与少数(数千)个大文件相比,很多(数百万)个小文件有啥问题吗?的主要内容,如果未能解决你的问题,请参考以下文章
DSP视频教程DSP视频教程第5期:Matlab生成C算法文件在STM32上运行,相比Simulink生成C工程具有更广泛适用性(2022-03-27)