CN103246539A - 基于用户使用习惯的gis***模块加载方法 - Google Patents
基于用户使用习惯的gis***模块加载方法 Download PDFInfo
- Publication number
- CN103246539A CN103246539A CN2013101949989A CN201310194998A CN103246539A CN 103246539 A CN103246539 A CN 103246539A CN 2013101949989 A CN2013101949989 A CN 2013101949989A CN 201310194998 A CN201310194998 A CN 201310194998A CN 103246539 A CN103246539 A CN 103246539A
- 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.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公布了一种基于用户操作日志的智能控制模块加载的方法。包括:通过事先建立的二元映射关系来确定将界面操作模块与后台加载模块对应起来;设计一套合理的将用户操作数据与模块使用状况对应起来的一套评价指标;根据用户历史操作数据计算出评价指标并生成与工程文件配套的配置文件;当工程文件被开启或者新建时基于配置文件来确定需要预加载的模块并实施;当工程关闭时基于新生成的用户操作数据对配置文件进行更新。所述方法能够达到节省内存空间,提高加载速度的目的。
Description
技术领域
本发明属于地理信息应用软件领域。具体涉及一种基于用户历史操作记录数据的智能模块加载方法。
背景技术
在GIS(Geographic Information System,地理信息***)领域,随着GIS软件的应用领域日益广泛,用户需求显著增加,GIS软件的功能也越来越趋于多样化,专业化。与此同时,更多的代码模块被加入到软件当中来实现更多的功能,并且每当软件启动时,这些模块都要进行预加载。但是大部分预加载的模块并没有被用户使用到。这些未被使用到的预加载模块极大地降低了软件的启动速度并且耗费了相当数量的内存空间,造成了时间和空间上的浪费。在动态加载方面,德国学者Kapitza等[1]做过CORBA(Common Object Request BrokerArchitecture,公共对象请求代理体系结构)动态加载相关的研究,而基于用户历史数据的推荐算法被广泛应用在网页推荐和排序上[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,and Franz Hauck.″DLS:a CORBA service for dynamic loading of code.″On The Move to Meaningful Internet Systems 2003:CoopIS,DOA,and ODBASE(2003):1333-1350.
[2]Page,Lawrence,et al.″The PageRank citation ranking:bringing order to the web.″(1999).
[3]Xueming Yang.″Personalized Web Recommending Based on Ontology Learning.″Journalof Intelligence 28.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 true CN103246539A (zh) | 2013-08-14 |
CN103246539B 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753922A (zh) * | 2015-03-10 | 2015-07-01 | 百度在线网络技术(北京)有限公司 | 用于预加载的方法、服务端、客户端及*** |
CN111077858A (zh) * | 2019-12-06 | 2020-04-28 | 中铁四局集团建筑工程有限公司 | 一种工地安全调度监管方法及*** |
CN111258676A (zh) * | 2020-01-16 | 2020-06-09 | 中国平安财产保险股份有限公司 | 模块预加载方法、装置、设备及可读存储介质 |
CN114647411A (zh) * | 2022-04-02 | 2022-06-21 | 北京思明启创科技有限公司 | 编程界面加载方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330778A (ja) * | 1999-05-21 | 2000-11-30 | Nec Corp | 修正ロードモジュール置換後の復旧方法ならびに装置 |
US20070285717A1 (en) * | 2006-06-08 | 2007-12-13 | Canon Kabushiki Kaisha | Image processing apparatus and method of controlling same |
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 | 奇智软件(北京)有限公司 | 一种应用程序插件加载方法及装置 |
-
2013
- 2013-05-21 CN CN201310194998.9A patent/CN103246539B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330778A (ja) * | 1999-05-21 | 2000-11-30 | Nec Corp | 修正ロードモジュール置換後の復旧方法ならびに装置 |
US20070285717A1 (en) * | 2006-06-08 | 2007-12-13 | Canon Kabushiki Kaisha | Image processing apparatus and method of controlling same |
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 | 奇智软件(北京)有限公司 | 一种应用程序插件加载方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753922A (zh) * | 2015-03-10 | 2015-07-01 | 百度在线网络技术(北京)有限公司 | 用于预加载的方法、服务端、客户端及*** |
CN111077858A (zh) * | 2019-12-06 | 2020-04-28 | 中铁四局集团建筑工程有限公司 | 一种工地安全调度监管方法及*** |
CN111258676A (zh) * | 2020-01-16 | 2020-06-09 | 中国平安财产保险股份有限公司 | 模块预加载方法、装置、设备及可读存储介质 |
CN114647411A (zh) * | 2022-04-02 | 2022-06-21 | 北京思明启创科技有限公司 | 编程界面加载方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103246539B (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Preventive maintenance scheduling optimization based on opportunistic production-maintenance synchronization | |
Hu et al. | Forecasting energy demand using neural-network-based grey residual modification models | |
CN110705763B (zh) | 一种包含误差修正的超短期负荷预测方法及*** | |
CN109324905B (zh) | 数据库操作方法、装置、电子设备及存储介质 | |
CN102959510A (zh) | 用于计算机功率和资源消耗建模的方法和*** | |
CN105205104A (zh) | 一种云平台数据获取方法 | |
CN101799808A (zh) | 一种数据处理方法及其*** | |
CN111612275B (zh) | 一种预测区域用户负荷量的方法及装置 | |
Lei et al. | Short-term load forecasting with clustering–regression model in distributed cluster | |
CN103873528A (zh) | 一种为用户分配***资源的方法与设备 | |
CN105159971B (zh) | 一种云平台数据检索方法 | |
CN102622260A (zh) | 一种在线迭代编译的优化方法和优化*** | |
CN109978177A (zh) | 模型训练方法、业务处理方法、装置及相关设备 | |
CN105183809A (zh) | 一种云平台数据查询方法 | |
CN103246539A (zh) | 基于用户使用习惯的gis***模块加载方法 | |
CN110807016A (zh) | 一种应用于金融业务的数据仓库构建方法、装置和电子设备 | |
CN116827950A (zh) | 云资源的处理方法、装置、设备及存储介质 | |
CN114995964A (zh) | 一种组合服务重构方法、装置、设备和计算机可读介质 | |
Zhao et al. | Hadoop-based power grid data quality verification and monitoring method | |
CN116502210A (zh) | 一种账号权限的分配方法、装置、设备及可读存储介质 | |
Li et al. | Efficient multi-attribute precedence-based task scheduling for edge computing in geo-distributed cloud environment | |
CN104933537A (zh) | 工业企业能源利用信息管理*** | |
CN112560325B (zh) | 换电业务的预测方法、***、设备及存储介质 | |
Hong et al. | The study on affecting factors of regional marine industrial structure upgrading | |
Finogeev et al. | Application of hyper-convergent platform for big data in exploring regional innovation systems |
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 |