CN111563061A - 一种内存优化的方法和设备 - Google Patents

一种内存优化的方法和设备 Download PDF

Info

Publication number
CN111563061A
CN111563061A CN202010414752.8A CN202010414752A CN111563061A CN 111563061 A CN111563061 A CN 111563061A CN 202010414752 A CN202010414752 A CN 202010414752A CN 111563061 A CN111563061 A CN 111563061A
Authority
CN
China
Prior art keywords
file
file name
identification bit
directory
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202010414752.8A
Other languages
English (en)
Inventor
解志阳
肖国栋
张立强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010414752.8A priority Critical patent/CN111563061A/zh
Publication of CN111563061A publication Critical patent/CN111563061A/zh
Priority to PCT/CN2021/073789 priority patent/WO2021227562A1/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1737Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种内存优化的方法和设备,该方法包括以下步骤:在文件的inode中设置第一标识位和第二标识位;响应于用户第一次操作文件的目录,将第一标识位设置为true以打开大小写不敏感功能并判断目录下一级子目录的元数据是否全部在内存中;响应于目录下一级子目录的元数据全部在内存中,将元数据中的目录名添加到文件名列表中并将第二标识位设置为true;响应于用户再次操作文件,判断文件的文件名是否在文件名列表中;响应于文件的文件名在文件名列表中,返回文件名并执行后续操作。通过使用本发明的方案,能够实现大小写不敏感功能的内存优化,在兼容现有大小写不敏感功能的基础上,减少内存的占用,在实际应用过程中,具有一定的经济价值。

Description

一种内存优化的方法和设备
技术领域
本领域涉及计算机领域,并且更具体地涉及一种内存优化的方法和设备。
背景技术
Windows系统和Linux系统对文件名的大小写有不同的处理方式。Windows对文件名的大小写不敏感,举个例子如果一个文件名是ab.txt,那么系统会认为同级目录下ab.txt和AB.txt是同一个文件,在同级目录下只能存在一份。而Linux系统则认为是不同的文件。为了适用不同的场景需求和系统兼容,开发了大小写不敏感功能。功能实现,是基于在inode中实现了一个map<string,set<string>>文件名列表,key为大写的文件名,set集合中存放目录下的文件名。如目录A下存在文件“Abc”,“ABc”,则在A的inode中的文件名列表中存在一条数据:key-“ABC”,set集合包含“Abc”、“ABc”。文件系统启动后,所有的文件会全部加载到文件名列表中。经过测试,百万文件(文件名都为8字节)对应的文件名列表占用的内存约为220M。当文件数量上亿,甚至上百亿后,内存的开销非常巨大。
发明内容
有鉴于此,本发明实施例的目的在于提出一种内存优化的方法和设备,通过使用本发明的方法,能够实现大小写不敏感功能的内存优化,在兼容现有大小写不敏感功能的基础上,减少内存的占用,在实际应用过程中,具有一定的经济价值。
基于上述目的,本发明的实施例的一个方面提供了一种内存优化的方法,包括以下步骤:
在文件的inode(索引节点)中设置第一标识位和第二标识位;
响应于用户第一次操作文件的目录,将第一标识位设置为true以打开大小写不敏感功能并判断目录下一级子目录的元数据是否全部在内存中;
响应于目录下一级子目录的元数据全部在内存中,将元数据中的目录名添加到文件名列表中并将第二标识位设置为true;
响应于用户再次操作文件,判断文件的文件名是否在文件名列表中;
响应于文件的文件名在文件名列表中,返回文件名并执行后续操作。
根据本发明的一个实施例,还包括:
响应于文件的文件名不在文件名列表中,判断第二标识位是否为true;
响应于第二标识位为true,判断文件不存在。
根据本发明的一个实施例,还包括:响应于文件的目录被trim(老化过程),将第二标识位设置为false。
根据本发明的一个实施例,还包括:
响应于文件的文件名不在文件名列表中,判断第二标识位是否为false;
响应于第二标识位为false,对目录进行fetch(从硬盘中加载数据)操作,并将第二标识位设置为true并判断文件的文件名是否在文件名列表中;
响应于文件的文件名在文件名列表中,返回文件名并执行后续操作。
根据本发明的一个实施例,还包括:
文件所在的系统重启后将第一标识位设置为false以关闭大小写不敏感功能。
本发明的实施例的另一个方面,还提供了一种内存优化的设备,设备包括:
第一设置模块,第一设置模块配置为在文件的inode中设置第一标识位和第二标识位;
第一判断模块,判断模块配置为响应于用户第一次操作文件的目录,将第一标识位设置为true以打开大小写不敏感功能并判断目录下一级子目录的元数据是否全部在内存中;
添加模块,添加模块配置为响应于目录下一级子目录的元数据全部在内存中,将元数据中的目录名添加到文件名列表中并将第二标识位设置为true;
第二判断模块,第二判断模块配置为响应于用户再次操作文件,判断文件的文件名是否在文件名列表中;
执行模块,执行模块配置为响应于文件的文件名在文件名列表中,返回文件名并执行后续操作。
根据本发明的一个实施例,还包括第三判断模块,第三判断模块配置为:
响应于文件的文件名不在文件名列表中,判断第二标识位是否为true;
响应于第二标识位为true,判断文件不存在。
根据本发明的一个实施例,添加模块还配置为响应于文件的目录被trim,将第二标识位设置为false。
根据本发明的一个实施例,还包括加载模块,加载模块配置为:
响应于文件的文件名不在文件名列表中,判断第二标识位是否为false;
响应于第二标识位为false,对目录进行fetch操作,并将第二标识位设置为true并判断文件的文件名是否在文件名列表中;
响应于文件的文件名在文件名列表中,返回文件名并执行后续操作。
根据本发明的一个实施例,第一判断模块还配置为:
文件所在的系统重启后将第一标识位设置为false以关闭大小写不敏感功能。
本发明具有以下有益技术效果:本发明实施例提供的内存优化的方法,通过在文件的inode中设置第一标识位和第二标识位;响应于用户第一次操作文件的目录,将第一标识位设置为true以打开大小写不敏感功能并判断目录下一级子目录的元数据是否全部在内存中;响应于目录下一级子目录的元数据全部在内存中,将元数据中的目录名添加到文件名列表中并将第二标识位设置为true;响应于用户再次操作文件,判断文件的文件名是否在文件名列表中;响应于文件的文件名在文件名列表中,返回文件名并执行后续操作的技术方案,能够实现大小写不敏感功能的内存优化,在兼容现有大小写不敏感功能的基础上,减少内存的占用,在实际应用过程中,具有一定的经济价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明一个实施例的内存优化的方法的示意性流程图;
图2为根据本发明一个实施例的内存优化的设备的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
基于上述目的,本发明的实施例的第一个方面,提出了一种内存优化的方法的一个实施例。图1示出的是该方法的示意性流程图。
如图1中所示,该方法可以包括以下步骤:
S1在文件的inode中设置第一标识位和第二标识位,第一标识位可以控制是否开启大小写不敏感功能,当第一标识位为true时表示开启大小写不敏感功能,当第一标识位为false时表示关闭大小写不敏感功能,第二标识位可以标记目录中文件名字的文件名列表是否完整,当第二标识位为true时表示文件名列表完整,当第二标识位为false时表示文件名列表不完整;
S2响应于用户第一次操作文件的目录,将第一标识位设置为true以打开大小写不敏感功能并判断目录下一级子目录的元数据是否全部在内存中,默认情况下第一标识位都为false,当一个文件的目录被操作(读、写、删除、查询等)时第一标识位修改为true,也就是打开大小写不敏感功能,这时需要判断该目录下一级子目录中的元数据是否全部在内存中,如果没有全部在内存中,则需要通过fetch操作加载到内存中;
S3响应于目录下一级子目录的元数据全部在内存中,将元数据中的目录名添加到文件名列表中并将第二标识位设置为true,如果元数据全部在内存中,则通过内存的数据将有效的文件目录名添加到文件名列表中,并将第二标识位设置为true,也就是表示文件名列表是完整的;
S4响应于用户再次操作文件,判断文件的文件名是否在文件名列表中;
S5响应于文件的文件名在文件名列表中,返回文件名并执行后续操作,这时的大小写不敏感功能是开启的,可以在该目录中找到不区分大小写的字母相同的文件的名字,可以对该文件执行想要执行的操作。
本发明提出了一种适用于大小写不敏感的内存优化方法,该方法通过增加基于目录的触发式开启机制、数据强一致和老化机制,减少大小写不敏感功能的内存占用,实现内存优化。
通过本发明的技术方案,能够实现大小写不敏感功能的内存优化,在兼容现有大小写不敏感功能的基础上,减少内存的占用,在实际应用过程中,具有一定的经济价值。
在本发明的一个优选实施例中,还包括:
响应于文件的文件名不在文件名列表中,判断第二标识位是否为true;
响应于第二标识位为true,判断文件不存在。当第二标识位为true时,说明文件名列表是完整的,也就是不区分大小写的相同字母的名字都在这个列表中,列表中没有这个文件的名字说明不存在该文件,这时可以向用户发出提示。
在本发明的一个优选实施例中,还包括:响应于文件的目录被trim,将第二标识位设置为false。如果文件目录被trim,或者文件删除或者重命名,则在文件名列表中删除该文件的文件名,并将第二标识位设置为false,标识当前的文件名列表是不完整的。这样可以进一步优化内存的占用。
在本发明的一个优选实施例中,还包括:
响应于文件的文件名不在文件名列表中,判断第二标识位是否为false;
响应于第二标识位为false,对目录进行fetch操作,并将第二标识位设置为true并判断文件的文件名是否在文件名列表中;
响应于文件的文件名在文件名列表中,返回文件名并执行后续操作。第二标识位为false时,说明当前的文件名列表是不完整的,这时可以通过对目录进行fetch操作,将该目录下的元数据加载到内存中,并将文件名添加到文件名列表中,fetch操作完成后文件名列表是完整的,将第二标识位修改为true,然后在判断该文件的文件名是否在完整的文件名列表中,如果在,则继续执行想要执行的操作,如果不在,则说明该文件不存在。
在本发明的一个优选实施例中,还包括:
文件所在的系统重启后将第一标识位设置为false以关闭大小写不敏感功能。系统重启后,大小写不敏感功能全部关闭,在用户第一次操作文件的目录时,第一标识位设置为true以打开大小写不敏感功能。
通过本发明的技术方案,能够实现大小写不敏感功能的内存优化,在兼容现有大小写不敏感功能的基础上,减少内存的占用,在实际应用过程中,具有一定的经济价值。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。
基于上述目的,本发明的实施例的第二个方面,提出了一种内存优化的设备,如图2所示,设备200包括:
第一设置模块,第一设置模块配置为在文件的inode中设置第一标识位和第二标识位;
第一判断模块,判断模块配置为响应于用户第一次操作文件的目录,将第一标识位设置为true以打开大小写不敏感功能并判断目录下一级子目录的元数据是否全部在内存中;
添加模块,添加模块配置为响应于目录下一级子目录的元数据全部在内存中,将元数据中的目录名添加到文件名列表中并将第二标识位设置为true;
第二判断模块,第二判断模块配置为响应于用户再次操作文件,判断文件的文件名是否在文件名列表中;
执行模块,执行模块配置为响应于文件的文件名在文件名列表中,返回文件名并执行后续操作。
在本发明的一个优选实施例中,还包括第三判断模块,第三判断模块配置为:
响应于文件的文件名不在文件名列表中,判断第二标识位是否为true;
响应于第二标识位为true,判断文件不存在。
在本发明的一个优选实施例中,添加模块还配置为响应于文件的目录被trim,将第二标识位设置为false。
在本发明的一个优选实施例中,还包括加载模块,加载模块配置为:
响应于文件的文件名不在文件名列表中,判断第二标识位是否为false;
响应于第二标识位为false,对目录进行fetch操作,并将第二标识位设置为true并判断文件的文件名是否在文件名列表中;
响应于文件的文件名在文件名列表中,返回文件名并执行后续操作。
在本发明的一个优选实施例中,第一判断模块还配置为:
文件所在的系统重启后将第一标识位设置为false以关闭大小写不敏感功能。
需要特别指出的是,上述系统的实施例采用了上述方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到上述方法的其他实施例中。
此外,上述方法步骤以及系统单元或模块也可以利用控制器以及用于存储使得控制器实现上述步骤或单元或模块功能的计算机程序的计算机可读存储介质实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。

Claims (10)

1.一种内存优化的方法,其特征在于,包括以下步骤:
在文件的inode中设置第一标识位和第二标识位;
响应于用户第一次操作所述文件的目录,将所述第一标识位设置为true以打开大小写不敏感功能并判断所述目录下一级子目录的元数据是否全部在内存中;
响应于所述目录下一级子目录的元数据全部在所述内存中,将所述元数据中的目录名添加到文件名列表中并将所述第二标识位设置为true;
响应于用户再次操作所述文件,判断所述文件的文件名是否在所述文件名列表中;
响应于所述文件的文件名在所述文件名列表中,返回所述文件名并执行后续操作。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述文件的文件名不在所述文件名列表中,判断所述第二标识位是否为true;
响应于所述第二标识位为true,判断所述文件不存在。
3.根据权利要求1所述的方法,其特征在于,还包括:响应于所述文件的所述目录被trim,将所述第二标识位设置为false。
4.根据权利要求3所述的方法,其特征在于,还包括:
响应于所述文件的文件名不在所述文件名列表中,判断所述第二标识位是否为false;
响应于所述第二标识位为false,对所述目录进行fetch操作,并将所述第二标识位设置为true并判断所述文件的文件名是否在所述文件名列表中;
响应于所述文件的文件名在所述文件名列表中,返回所述文件名并执行后续操作。
5.根据权利要求1所述的方法,其特征在于,还包括:
所述文件所在的系统重启后将所述第一标识位设置为false以关闭大小写不敏感功能。
6.一种内存优化的设备,其特征在于,所述设备包括:
第一设置模块,所述第一设置模块配置为在文件的inode中设置第一标识位和第二标识位;
第一判断模块,所述判断模块配置为响应于用户第一次操作所述文件的目录,将所述第一标识位设置为true以打开大小写不敏感功能并判断所述目录下一级子目录的元数据是否全部在内存中;
添加模块,所述添加模块配置为响应于所述目录下一级子目录的元数据全部在所述内存中,将所述元数据中的目录名添加到文件名列表中并将所述第二标识位设置为true;
第二判断模块,所述第二判断模块配置为响应于用户再次操作所述文件,判断所述文件的文件名是否在所述文件名列表中;
执行模块,所述执行模块配置为响应于所述文件的文件名在所述文件名列表中,返回所述文件名并执行后续操作。
7.根据权利要求6所述的设备,其特征在于,还包括第三判断模块,所述第三判断模块配置为:
响应于所述文件的文件名不在所述文件名列表中,判断所述第二标识位是否为true;
响应于所述第二标识位为true,判断所述文件不存在。
8.根据权利要求6所述的设备,其特征在于,所述添加模块还配置为响应于所述文件的所述目录被trim,将所述第二标识位设置为false。
9.根据权利要求8所述的设备,其特征在于,还包括加载模块,所述加载模块配置为:
响应于所述文件的文件名不在所述文件名列表中,判断所述第二标识位是否为false;
响应于所述第二标识位为false,对所述目录进行fetch操作,并将所述第二标识位设置为true并判断所述文件的文件名是否在所述文件名列表中;
响应于所述文件的文件名在所述文件名列表中,返回所述文件名并执行后续操作。
10.根据权利要求6所述的设备,其特征在于,所述第一判断模块还配置为:
所述文件所在的系统重启后将所述第一标识位设置为false以关闭大小写不敏感功能。
CN202010414752.8A 2020-05-15 2020-05-15 一种内存优化的方法和设备 Withdrawn CN111563061A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010414752.8A CN111563061A (zh) 2020-05-15 2020-05-15 一种内存优化的方法和设备
PCT/CN2021/073789 WO2021227562A1 (zh) 2020-05-15 2021-01-26 一种内存优化的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010414752.8A CN111563061A (zh) 2020-05-15 2020-05-15 一种内存优化的方法和设备

Publications (1)

Publication Number Publication Date
CN111563061A true CN111563061A (zh) 2020-08-21

Family

ID=72071068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010414752.8A Withdrawn CN111563061A (zh) 2020-05-15 2020-05-15 一种内存优化的方法和设备

Country Status (2)

Country Link
CN (1) CN111563061A (zh)
WO (1) WO2021227562A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021227562A1 (zh) * 2020-05-15 2021-11-18 苏州浪潮智能科技有限公司 一种内存优化的方法和设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587386B2 (en) * 2007-05-14 2009-09-08 Sap Ag Translating case-sensitive technical identfiers
CN106604370A (zh) * 2016-10-26 2017-04-26 珠海格力电器股份有限公司 一种对终端中的应用进行定时的方法和装置
CN111061681A (zh) * 2019-11-15 2020-04-24 浪潮电子信息产业股份有限公司 一种基于大小写不敏感的目录分片方法、装置及存储介质
CN111563061A (zh) * 2020-05-15 2020-08-21 苏州浪潮智能科技有限公司 一种内存优化的方法和设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021227562A1 (zh) * 2020-05-15 2021-11-18 苏州浪潮智能科技有限公司 一种内存优化的方法和设备

Also Published As

Publication number Publication date
WO2021227562A1 (zh) 2021-11-18

Similar Documents

Publication Publication Date Title
CN100478946C (zh) 用于文件系统快照持久性的方法和装置
US7707190B2 (en) Method for restoring backup data
US6370549B1 (en) Apparatus and method for searching for a file
US8280908B2 (en) Merging file system directories
CN112912868B (zh) 用于批量移除数据库中的记录的系统和方法
US10353636B2 (en) Write filter with dynamically expandable overlay
US20060136446A1 (en) Prioritized files
CN1498363A (zh) 恢复受恶性计算机程序破坏的计算机系统的系统和方法
CN105474200A (zh) 具有占位符的水合和脱水
US9898603B2 (en) Offline extraction of configuration data
WO2008056944A1 (en) Confirmation method of api by the information at call-stack
JP2008503818A (ja) コンピュータ・デバイスにおけるファイルシステムの性能を改善するための方法
US20100287205A1 (en) Operating system / electronic device and method for storing or reading a file
CN104049914A (zh) 一种对保护分区执行写操作的方法和装置
CN113342741B (zh) 快照实现方法及装置、电子设备及计算机可读存储介质
EP3343395B1 (en) Data storage method and apparatus for mobile terminal
CN111563061A (zh) 一种内存优化的方法和设备
US20200004839A1 (en) Download management
CN115454827B (zh) 兼容性检测方法、系统、设备和介质
CN114356849B (zh) 文件系统的数据管理方法及装置、电子设备及存储介质
US9465937B1 (en) Methods and systems for securely managing file-attribute information for files in a file system
CN106557572A (zh) 一种安卓应用程序文件的提取方法及系统
CN115080114A (zh) 应用程序的移植处理方法、装置和介质
CN110515665B (zh) 一种处理器系统的启动方法、系统及装置
CN109669921A (zh) 文件操作方法和系统、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20200821