热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

寻找文件存储方面高手,特别是做过监控的高手!解决磁盘文件碎片问题.

我现在做一监控软件,多路视频采集,同时往硬盘里写视频文件,逐个磁盘写,所有的文件在磁盘中均是碎片文件.特郁闷,希望各位高人赐教,先谢了!
我现在做一监控软件,多路视频采集,同时往硬盘里写视频文件,逐个磁盘写,所有的文件在磁盘中均是碎片文件.特郁闷,希望各位高人赐教,先谢了!

4 个解决方案

#1


首先你要为文件申请足够的空间,然后都以共享形式打开文件,各个写操作从不同的偏移量开始写。
这样做比较伤硬盘,一般都是共同写在一块内存中,等到足够数量时才写入硬盘文件

#2


关注一下

偶们虽然不是视频数据,但是也涉及到频繁写文件的问题,现在采取的是先保存在内存中,到一定的大小后再一起写入文件,但是欧们的数据量不会很大,只是频繁写而已〉。。。考虑到数据量比较大的情况,这样显然会消耗掉很多内存,具体问题还是具体分析,找个折中点吧...

#3


先看你是什么文件系统,是人家的,还是自己开发的。文件碎片无论如何都会产生的,第一是想法让它尽量少的产生,第二是碎片整理。少产生碎片实际上是很难的,这个得从文件分配表上来做文章,计算大小。当你的第一个盘正在录的时候,第二个盘就可以开始整理碎片了。当然,内存要够用。

#4


可以考虑自己设计文件系统,盘块的分配策略可以要求连续分配。

推荐阅读
  • 如何在Eclipse中配置不同文件类型的默认打开方式
    在Eclipse中配置不同文件类型的默认打开方式是一项常见的需求。本文将指导您如何轻松地修改Eclipse中各种文件类型的默认打开方式。具体步骤如下:首先,启动Eclipse,然后依次点击【Window】--【Preferences】进入设置界面。接下来,您可以根据需要选择相应的文件类型,并指定其默认打开的编辑器或工具。通过这些设置,您可以显著提升开发效率和工作便捷性。 ... [详细]
  • 如何在低配置电脑上下载并运行《绝地求生》游戏? ... [详细]
  • 在VS2013中编译FFMPEG时遇到的问题及解决方案
    在使用VS2013编译旧版本FFMPEG库时遇到了一些问题,因为官方并未提供预编译的LIB和DLL文件。由于对Linux环境不熟悉,只能在Windows环境下进行配置和编译。具体步骤如下:首先,下载FFMPEG的源代码;然后,安装必要的编译工具和依赖项;接着,配置Visual Studio 2013的项目设置;最后,解决编译过程中出现的各种错误和警告。通过这些步骤,最终成功编译出所需的FFMPEG库文件。 ... [详细]
  • 在Java编程中,`AbstractClassTest.java` 文件详细解析了抽象类的使用方法。该文件通过导入 `java.util.*` 包中的 `Date` 和 `GregorianCalendar` 类,展示了如何在主方法 `main` 中实例化和操作抽象类。此外,还介绍了抽象类的基本概念及其在实际开发中的应用场景,帮助开发者更好地理解和运用抽象类的特性。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 在探讨 MySQL 正则表达式 REGEXP 的功能与应用之前,我们先通过一个小实验来对比 REGEXP 和 LIKE 的性能。通过具体的代码示例,我们将评估这两种查询方式的效率,以确定 REGEXP 是否值得深入研究。实验结果将为后续的详细解析提供基础。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • Squaretest:自动生成功能测试代码的高效插件
    本文将介绍一款名为Squaretest的高效插件,该工具能够自动生成功能测试代码。使用这款插件的主要原因是公司近期加强了代码质量的管控,对各项目进行了严格的单元测试评估。Squaretest不仅提高了测试代码的生成效率,还显著提升了代码的质量和可靠性。 ... [详细]
  • 在程序文件的Java目录中配置两个JRE、一个JDK和一个外部JDK的具体原因在于,不同的应用程序或开发环境可能需要不同版本的Java运行时环境和开发工具包。通过这种方式,可以确保每个应用都能在其所需的特定Java环境中运行,避免版本冲突和兼容性问题,从而提高系统的稳定性和可靠性。此外,外部JDK的引入还可以满足特定开发工具或构建系统的需求,提供更多的灵活性和扩展性。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 在IDEA中成功运行Maven项目并配置Tomcat后仍遇到404错误的解决方案
    在 IntelliJ IDEA 中成功部署 Maven 项目并配置 Tomcat 后,如果仍然遇到 404 错误,可能是由于多种原因导致的。本文将详细探讨常见的问题及其解决方法,包括检查项目结构、配置文件、依赖项以及 Tomcat 配置等。通过这些步骤,可以帮助开发者快速定位并解决问题,确保应用能够正常运行。 ... [详细]
  • Navicat Premium 12 连接 Oracle 数据库时出现 ORA-03113 错误:通信通道上的文件结束。进程ID:3344,会话ID:244,序列号:56707
    在使用 Navicat Premium 12 连接 Oracle 数据库时,遇到了 ORA-03113 错误,提示“通信通道上的文件结束”。具体错误信息显示进程ID为3344,会话ID为244,序列号为56707。经初步分析,该错误可能是由于数据库曾被强制关闭,导致文件状态不一致所致。通过关闭并重新建立数据库连接,问题得以顺利解决。此解决方案适用于类似情况,建议在遇到此类错误时,首先检查数据库的运行状态和日志记录,以确保数据的一致性和完整性。 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
author-avatar
泥土人走泥u加水
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有