CN103246539B - 基于用户使用习惯的gis系统模块加载方法 - Google Patents
基于用户使用习惯的gis系统模块加载方法 Download PDFInfo
- Publication number
- CN103246539B CN103246539B CN201310194998.9A CN201310194998A CN103246539B CN 103246539 B CN103246539 B CN 103246539B CN 201310194998 A CN201310194998 A CN 201310194998A CN 103246539 B CN103246539 B CN 103246539B
- Authority
- CN
- China
- Prior art keywords
- module
- information system
- user
- generalized information
- nucleus
- 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.)
- Expired - Fee Related
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公布了一种基于用户操作日志的智能控制模块加载的方法。包括:通过事先建立的二元映射关系来确定将界面操作模块与后台加载模块对应起来;设计一套合理的将用户操作数据与模块使用状况对应起来的一套评价指标;根据用户历史操作数据计算出评价指标并生成与工程文件配套的配置文件;当工程文件被开启或者新建时基于配置文件来确定需要预加载的模块并实施;当工程关闭时基于新生成的用户操作数据对配置文件进行更新。所述方法能够达到节省内存空间,提高加载速度的目的。
Description
技术领域
本发明属于地理信息应用软件领域。具体涉及一种基于用户历史操作记录数据的智能模块加载方法。
背景技术
在GIS(GeographicInformationSystem,地理信息系统)领域,随着GIS软件的应用领域日益广泛,用户需求显著增加,GIS软件的功能也越来越趋于多样化,专业化。与此同时,更多的代码模块被加入到软件当中来实现更多的功能,并且每当软件启动时,这些模块都要进行预加载。但是大部分预加载的模块并没有被用户使用到。这些未被使用到的预加载模块极大地降低了软件的启动速度并且耗费了相当数量的内存空间,造成了时间和空间上的浪费。在动态加载方面,德国学者Kapitza等[1]做过CORBA(CommonObjectRequestBrokerArchitecture,公共对象请求代理体系结构)动态加载相关的研究,而基于用户历史数据的推荐算法被广泛应用在网页推荐和排序上[2][3],但关于GIS相关软件的智能加载,目前还没有人给出一个合适的解决方案。
发明内容
本发明提出了一种智能的动态控制模块预加载的方案。该方法以工程为单位,对用户操作使用的历史数据进行分析,并由此找出不应该被预加载的模块,从而实现对启动模块加载的优化。
本发明的技术方案如下:
一种基于用户使用习惯的GIS系统模块加载方法,其特征是,
一、预处理阶段:
1)把GIS系统的模块划分为基本模块、核心模块和外围模块三种,所述基本模块指的是GIS系统启动以及正常运行所必需的模块,所述核心模块指的是超过一半以上的用户操作所需要的预加载的模块(表现为在步骤2)中二元关系矩阵中本模块对应的向量元素为1的数量超过向量所包含总元素个数的一半),GIS系统的其余模块为外围模块;
2)通过二进制矩阵来分别建立用户在GIS系统中的操作与核心模块以及与外围模块之间多对多的二元关系映射;GIS系统中的每个核心模块和外围模块对应矩阵中的一列,GIS系统中的每个操作对应矩阵中的一行,当调用GIS系统的这个操作,需要调用模块时,这个矩阵中的对应元素被赋为1,否则为0;
3)收集用户在GIS系统中的操作的历史记录,通过分析这些历史记录,抽取出对该用户来说在启动GIS系统时需要加载的核心模块与外围模块列表;
4)把用户和启动GIS系统时需要加载的核心模块与外围模块列表建立对应关系,保存到数据库中;
二、启动GIS系统时:
用户启动GIS系统时,从数据库中读取和该用户对应的核心模块与外围模块列表,然后加载基本模块以及所述核心模块与外围模块列表中的所有核心模块和外围模块。
所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,进一步包括:
三、GIS系统关闭时:
当GIS系统关闭时,通过GIS系统生成LOG记录,对数据库中的记录进行更新,来更好地适应用户下次的使用需求。
所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,所述一个操作对应于一个核心模块或外围模块。
所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,所述一个操作对应于多个核心模块和/或外围模块。
所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,所述用户操作的历史记录,由GIS系统自动产生或者用户编写LOG记录模块产生。
所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,当GIS系统启动后,用户操作所涉及的核心与外围模块未加载时,GIS系统动态加载所需的核心模块与外围模块。
所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,所述的数据库为文本文件、桌面型数据库或关系数据库。
所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,在数据库中为每一个GIS工程文件建立一个配置文件,保存在启动该GIS工程文件时需要加载的核心模块与外围模块列表,在打开该工程时自动加载所述核心模块和外围模块,这样直接把GIS工程文件与加载模块对应,在启动该工程文件时不加载与该用户对应的核心模块和外围模块,仅加载该工程文件需要加载的核心模块和外围模块,进一步加快了加载速度。
所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,在该GIS工程文件进行过程中,根据对核心模块和外围模块的调用情况,动态更新其在数据库中的配置文件。
本发明的有益效果:本发明能使GIS软件启动加载的速度显著加快,占用内存减少。并避免在软件使用过程中部分模块的反复加载带来的空间上和时间上的浪费。
具体实施方式
1.建立用户操作和GIS系统模块的对应的二元映射关系。
列出用户操作和所述模块的二维二进制矩阵{aij},当某一用户操作i需要预加载第j个模块时,设置aij=1,反之则为aij=0。
2.对模块进行分类,将软件启动必须的模块(如:控制线程调度,用户界面等功能)设定为基本模块,这部分模块在任何情况下都会被预加载。将超过一半以上的用户操作所需要的预加载的模块(表现为在上文中提到的二元关系矩阵中本模块对应的向量元素为1的数量超过向量所包含总元素个数的一半)设定为核心模块,其他的设定为外围模块。
3.以工程为单位,通过历史数据计算评价指标向量并保存在配置文件中。对于核心模块,我们设定一个二进制元素组成的向量η来进行描述,η中任意元素ηi用来描述一个核心模块,当本工程使用过需要预加载某基本模块所需要的用户操作时,那么这个核心模块对应的元素为1,反之则为0。对于外围模块,则采用向量μ来衡量用户对模块的使用频率以及判断是否需要被预加载,μ中的任意一个元素μj为一个在0-1之间的小数,μj的计算方法为:使用本工程内使用第j模块的用户操作数÷工程内总用户操作数(∑μj)。
4.加载推荐。当新建一个工程的时候,使用最近修改时间离现在最近的n(n可以由用户设定,默认值为7)个工程的上述配置文件参与计算,对于核心模块的n个配置向量,进行按位或运算,所得向量中值为1的需要加载。对于外围模块的n个配置向量按照时间顺序权重依次衰减的顺序进行加权平均,得到新配置向量μ,对所得值进行排序,在导入每个模块再被预加载时所占用的内存大小数据,在占用内存不超过I(I由当全部外围模块被加载到内存当中,所占用总内存的比例所确定,初始值为1/2)可以由用户设定,默认值为1/2)(MB)的情况下,选取尽可能多的前M(M为系统生成)个作为需要预加载的模块。
5.当本工程使用结束时,由用户操作数据生成基本模块配置向量存入配置文件中(生成方法见步骤3),而将由用户操作数据生成的核心模块配置向量(生成方法见步骤3),与之前得到的向量μ求平均值,将得到的值存入配置文件中。
6.当打开旧有工程文件时,只读取本文件的配置文件,进行步骤4中涉及到的相关计算,求出需要预加载的模块,当本工程关闭时,利用用户操作数据来进行计算对配置文件进行更新。
实施例:
下面以开源软件QuantumGIS的部分加载模块为例,详述本发明的实施方式。
我们为QuantumGIS的每个工程文件添加一个自定义的配置文件,并将这个配置文件与工程文件的读取路径进行关联,用于实现上述方法。
当新建工程一个QuantumGIS工程文件(.qgs文件)时:
1.读取最后修改时间距离当前时间最近的n个工程文件中的配置文件。
2.对这n个配置文件中的代表模块元素进行计算(基本模块为按位或运算,核心模块为权重依据时间衰减的加权平均运算),计算出本工程文件的配置文件,并依照配置向量确定所有需要预加载模块。
3.当用户在本工程文件操作时,后台程序在内存中记录用户使用行为,简单统计用户操作,不进行相关计算。当本工程文件被关闭时,对用户调用的不同操作数依照之前预定义的描述用户操作和后台代码模块之间关系的二进制矩阵进行演算,将用户操作数转换为模块调用次数。基本模块按照是否被调用来更新本工程配置文件,核心模块把所得模块调用次数/操作数,生成一个核心模块配置向量,再将在2中由核心模块历史配置文件生成的核心模块配置向量求出平均值,得到核心模块的配置向量。将最后生成的基本模块配置向量和核心模块配置向量存入本工程配置文件中。
当打开一个旧有的QuantumGIS工程文件时:
1.只读取本工程文件的配置文件。
2.依照本工程的配置文件确定所有预加载模块。
3.执行新建一个QuantumGIS工程文件的步骤3。
参考文献
[1]Kapitza,Rüdiger,andFranzHauck.″DLS:aCORBAservicefordynamicloadingofcode.″OnTheMovetoMeaningfulInternetSystems2003:CoopIS,DOA,andODBASE(2003):1333-1350.
[2]Page,Lawrence,etal.″ThePageRankcitationranking:bringingordertotheweb.″(1999).
[3]XuemingYang.″PersonalizedWebRecommendingBasedonOntologyLearning.″JournalofIntelligence28.3(2009):171-174.
Claims (9)
1.一种基于用户使用习惯的GIS系统模块加载方法,其特征是,
一、预处理阶段:
1)把GIS系统的模块划分为基本模块、核心模块和外围模块三种,所述基本模块指的是GIS系统启动以及正常运行所必需的模块,所述核心模块指的是超过一半以上的用户操作所需要的预加载的模块,GIS系统的其余模块为外围模块;
2)通过二进制矩阵来建立用户在GIS系统中的操作与核心模块以及与外围模块之间多对多的二元关系映射;GIS系统中的每个核心模块和外围模块对应矩阵中的一列,GIS系统中的每个操作对应矩阵中的一行,当调用GIS系统的这个操作,需要调用模块时,这个矩阵中的对应元素被赋为1,否则为0;
3)收集用户在GIS系统中的操作的历史记录,通过分析这些历史记录,抽取出对该用户来说在启动GIS系统时需要加载的核心模块与外围模块列表;
4)把用户和启动GIS系统时需要加载的核心模块与外围模块列表建立对应关系,保存到数据库中;
二、启动GIS系统时:
5)用户启动GIS系统时,从数据库中读取和该用户对应的核心模块与外围模块列表,然后加载基本模块以及所述核心模块与外围模块列表中的所有核心模块和外围模块。
2.如权利要求1所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,进一步包括:
三、GIS系统关闭时:
当GIS系统关闭时,通过GIS系统生成LOG记录,对数据库中的记录进行更新,来更好地适应用户下次的使用需求。
3.如权利要求1或2所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,所述一个操作对应于一个核心模块或外围模块。
4.如权利要求1或2所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,所述一个操作对应于多个核心模块和/或外围模块。
5.如权利要求1或2所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,所述用户操作的历史记录,由GIS系统自动产生或者用户编写LOG记录模块产生。
6.如权利要求1或2所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,当GIS系统启动后,用户操作所涉及的核心模块和外围模块未加载时,GIS系统动态加载所需的核心模块与外围模块。
7.如权利要求1或2所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,所述的数据库为文本文件、桌面型数据库或关系数据库。
8.如权利要求1或2所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,在数据库中为每一个GIS工程文件建立一个配置文件,保存在启动该GIS工程文件时需要加载的核心模块与外围模块列表,在打开该工程时自动加载所述核心模块和外围模块。
9.如权利要求8所述的基于用户使用习惯的GIS系统模块加载方法,其特征是,在该GIS工程文件进行过程中,根据对核心模块和外围模块的调用情况,动态更新其在数据库中的配置文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310194998.9A CN103246539B (zh) | 2013-05-21 | 2013-05-21 | 基于用户使用习惯的gis系统模块加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310194998.9A CN103246539B (zh) | 2013-05-21 | 2013-05-21 | 基于用户使用习惯的gis系统模块加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103246539A CN103246539A (zh) | 2013-08-14 |
CN103246539B true CN103246539B (zh) | 2016-04-06 |
Family
ID=48926071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310194998.9A Expired - Fee Related CN103246539B (zh) | 2013-05-21 | 2013-05-21 | 基于用户使用习惯的gis系统模块加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103246539B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753922A (zh) * | 2015-03-10 | 2015-07-01 | 百度在线网络技术(北京)有限公司 | 用于预加载的方法、服务端、客户端及系统 |
CN111077858B (zh) * | 2019-12-06 | 2022-02-08 | 中铁四局集团建筑工程有限公司 | 一种工地安全调度监管方法及系统 |
CN111258676B (zh) * | 2020-01-16 | 2023-07-25 | 中国平安财产保险股份有限公司 | 模块预加载方法、装置、设备及可读存储介质 |
CN114647411A (zh) * | 2022-04-02 | 2022-06-21 | 北京思明启创科技有限公司 | 编程界面加载方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741974A (zh) * | 2009-11-26 | 2010-06-16 | 中兴通讯股份有限公司 | 一种终端及统计终端可加载模块使用率的方法 |
CN102163206A (zh) * | 2011-01-30 | 2011-08-24 | 青岛海信传媒网络技术有限公司 | 页面加载方法及系统 |
CN102541598A (zh) * | 2011-12-26 | 2012-07-04 | 深圳联友科技有限公司 | 一种动态加载组件的方法及系统 |
CN102662703A (zh) * | 2012-03-29 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种应用程序插件加载方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3551079B2 (ja) * | 1999-05-21 | 2004-08-04 | 日本電気株式会社 | 修正ロードモジュール置換後の復旧方法ならびに装置 |
JP4732248B2 (ja) * | 2006-06-08 | 2011-07-27 | キヤノン株式会社 | 画像処理装置およびその制御方法 |
-
2013
- 2013-05-21 CN CN201310194998.9A patent/CN103246539B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741974A (zh) * | 2009-11-26 | 2010-06-16 | 中兴通讯股份有限公司 | 一种终端及统计终端可加载模块使用率的方法 |
CN102163206A (zh) * | 2011-01-30 | 2011-08-24 | 青岛海信传媒网络技术有限公司 | 页面加载方法及系统 |
CN102541598A (zh) * | 2011-12-26 | 2012-07-04 | 深圳联友科技有限公司 | 一种动态加载组件的方法及系统 |
CN102662703A (zh) * | 2012-03-29 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种应用程序插件加载方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103246539A (zh) | 2013-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110705763B (zh) | 一种包含误差修正的超短期负荷预测方法及系统 | |
CN109683806A (zh) | 存储装置及其操作方法以及包括存储装置的计算系统 | |
CN102959510A (zh) | 用于计算机功率和资源消耗建模的方法和系统 | |
CN111143243B (zh) | 一种基于nvm混合内存的缓存预取方法及系统 | |
CN103246539B (zh) | 基于用户使用习惯的gis系统模块加载方法 | |
CN110457666B (zh) | 一种报表生成方法、系统及电子设备和存储介质 | |
US11657302B2 (en) | Model selection in a forecasting pipeline to optimize tradeoff between forecast accuracy and computational cost | |
CN103873528A (zh) | 一种为用户分配系统资源的方法与设备 | |
CN106502871A (zh) | 监管系统的告警阈值动态配置系统及方法 | |
CN108696571B (zh) | 云存储服务系统、方法、云服务智能设备及电子装置 | |
CN103559148A (zh) | 面向多任务嵌入式系统的片上便笺式存储器管理方法 | |
CN108133005B (zh) | 一种基于内存数据库的环境模型模拟方法、终端设备及存储介质 | |
CN116827950A (zh) | 云资源的处理方法、装置、设备及存储介质 | |
CN116185588A (zh) | 一种任务调度方法、装置、电子设备及可读存储介质 | |
CN110096339B (zh) | 一种基于系统负载实现的扩缩容配置推荐系统及方法 | |
CN116225696A (zh) | 用于流处理系统的算子并发度调优方法及装置 | |
CN106708624B (zh) | 一种多工作域计算资源的自适应调整方法 | |
Jiang et al. | Effective data management strategy and RDD weight cache replacement strategy in Spark | |
CN116502210A (zh) | 一种账号权限的分配方法、装置、设备及可读存储介质 | |
CN114817288A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109740809B (zh) | 基于单装寿命演化的装备集群剩余寿命预测方法及终端 | |
CN113128738A (zh) | 一种基于时间序列平移法的用电策略优化方法及装置 | |
CN117764638B (zh) | 一种供电企业售电数据预测方法、系统、设备及存储介质 | |
CN110705736A (zh) | 宏观经济预测方法、装置、计算机设备及存储介质 | |
CN115829144B (zh) | 电网业务优化模型的建立方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160406 Termination date: 20190521 |