时间:2024-05-04
摘要
针对问卷系统出卷和考场两个模块使用当中出现运行速度慢、经常掉线等问题,提出采用优化数据库和高并发多线程编码等措施,较好的解决了系统使用问题。
【關键词】随机数 矩阵 高并发 数据处理
1 引言
本单位目前使用的问卷系统具有科目题库、自动出卷以及电子考场等功能,可满足本单位各种考试和问卷调查。但在使用过程中存在出卷时间长、容易掉线、无验证反馈等问题。为了解决这些问题,提升系统运行速度和稳定性,提出通过运用随机数、矩阵等数学工具,优化数据库和代码,提高系统运行效率。
2 问卷系统优化
通过修改调整关系型数据库结构、采用索引矩阵存储试卷、利用概率密度分布抽取出题、基于多线程高并发的调度算法生成试卷等方法对问卷系统进行优化改善。
2.1 修改关系型数据库
在原来的数据库设计中为了更好的记录考题和考生之间的关系,通过中间表来冗余存储两者之间的关系,但随着数据量的不断增加,中间表的数据量巨大,极大的影响了后续出卷的速度,为了解决这一问题,对数据库结构进行调整。具体来说,问卷系统中的考场试卷授权表和考题表两张中间表存有大量数据,比如给m人每人出n道题考题表中需要保存m*n条数据,随着考试规模的增大必然会大大增加时间。需要减少数据库I/O操作,利用计算机强大的计算能力,以一种高效的数据结构来存储、运算元数据,达到性能优化的效果。
系统只需要记录考场、考卷、考生的相互关系,可以取消考题表。经过优化后的数据表结构,对m人每人出n道题只需保存m条记录。同时只要原数据不丢失,仍然可以在数据库中自动生成原数据考题索引。经过优化后每次出卷的数据量大大减少,减少了数据冗余
2.2 索引矩阵
修改数据库表结构后,利用多维矩阵生成每份考卷的题目索引,形成考题索引矩阵,以m*n矩阵为例,m是考试人数,而n是某题型的出题数。矩阵中每个元素是考题的索引,每一行代表试卷中某一题型的出题,将题型矩阵的行向量拼接起来就可以生成索引矩阵,然后将行向量与考场、考卷、考生等属性一起保存进试卷表新增的属性列中。
2.3 概率分布
问卷系统提供随机出题和范围出题两种模式,此功能要求计算机计算的矩阵索引元素符合概率密度要求。通过该方法产生不同概率分布的随机数,能满足用户对于题目范围的要求。符合标准正态概率密度的X变量,在经过aX+b公式运算后产生的随机数,其平均值、方差分别为(b,a^2),这样66%的随机数就会出现在平均数b的一个方差之内。在问卷系统中平均值、方差都可以由用户设定,实现出卷考题范围的控制。
2.4 基于高并发的调度算法
在问卷系统中出卷功能原先使用线性方式来编写代码,出卷程序的运算时间比较长,无法满足用户对于性能的要求。为了解决这一问题,对出卷功能尝试采用基于多线程的高并发调度算法进行优化后,1800人的智能出卷只需要2.3秒,出卷速度有了显著的提升。
图1中列出了自动出卷多线程运行的逻辑图,其算法如下:
(1)考生以200人为单位分组,为每一个分组产生Thn的子线程。
(2)再为每一个Thn子线程,产生5个ThNn的同步子线程,用来运算生成代表单选、多选等题型的考题索引矩阵。
(3)ThNn子线程返回考题索引矩阵,Thn将每个索引矩阵中的一条行向量数据与考场、考生、考卷信息作为一条记录保存在数据库表中。
(4)自动返回出卷完成情况。
2.5 改进后效果对比
依据上述优化方案重新设计了问卷系统,并对系统改进前后的应用效果进行了验证,表1列出了系统改进前后所使用的服务器,表2列出了系统改进前后的运行速度对比。
从对比结果来看,尽管改进前系统服务器的配置比改进后系统服务器的配置高,但是优化后的问卷系统在运算时间上取得显著改善,可见基于多线程的高并发对系统运算性能的提升作用是有效的。
参考文献
[1]胡佳.基于DSN的快速开发平台的构建及应用[J].中国管理信息化,2015(13):76-77.
[2]田斌.基于DORADO平台开发的电子问卷系统[J].电子技术与软件工程,2018.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!