摘要
針對問卷系統(tǒng)出卷和考場兩個模塊使用當中出現(xiàn)運行速度慢、經(jīng)常掉線等問題,提出采用優(yōu)化數(shù)據(jù)庫和高并發(fā)多線程編碼等措施,較好的解決了系統(tǒng)使用問題。
【關(guān)鍵詞】隨機數(shù) 矩陣 高并發(fā) 數(shù)據(jù)處理
1 引言
本單位目前使用的問卷系統(tǒng)具有科目題庫、自動出卷以及電子考場等功能,可滿足本單位各種考試和問卷調(diào)查。但在使用過程中存在出卷時間長、容易掉線、無驗證反饋等問題。為了解決這些問題,提升系統(tǒng)運行速度和穩(wěn)定性,提出通過運用隨機數(shù)、矩陣等數(shù)學(xué)工具,優(yōu)化數(shù)據(jù)庫和代碼,提高系統(tǒng)運行效率。
2 問卷系統(tǒng)優(yōu)化
通過修改調(diào)整關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)、采用索引矩陣存儲試卷、利用概率密度分布抽取出題、基于多線程高并發(fā)的調(diào)度算法生成試卷等方法對問卷系統(tǒng)進行優(yōu)化改善。
2.1 修改關(guān)系型數(shù)據(jù)庫
在原來的數(shù)據(jù)庫設(shè)計中為了更好的記錄考題和考生之間的關(guān)系,通過中間表來冗余存儲兩者之間的關(guān)系,但隨著數(shù)據(jù)量的不斷增加,中間表的數(shù)據(jù)量巨大,極大的影響了后續(xù)出卷的速度,為了解決這一問題,對數(shù)據(jù)庫結(jié)構(gòu)進行調(diào)整。具體來說,問卷系統(tǒng)中的考場試卷授權(quán)表和考題表兩張中間表存有大量數(shù)據(jù),比如給m人每人出n道題考題表中需要保存m*n條數(shù)據(jù),隨著考試規(guī)模的增大必然會大大增加時間。需要減少數(shù)據(jù)庫I/O操作,利用計算機強大的計算能力,以一種高效的數(shù)據(jù)結(jié)構(gòu)來存儲、運算元數(shù)據(jù),達到性能優(yōu)化的效果。
系統(tǒng)只需要記錄考場、考卷、考生的相互關(guān)系,可以取消考題表。經(jīng)過優(yōu)化后的數(shù)據(jù)表結(jié)構(gòu),對m人每人出n道題只需保存m條記錄。同時只要原數(shù)據(jù)不丟失,仍然可以在數(shù)據(jù)庫中自動生成原數(shù)據(jù)考題索引。經(jīng)過優(yōu)化后每次出卷的數(shù)據(jù)量大大減少,減少了數(shù)據(jù)冗余
2.2 索引矩陣
修改數(shù)據(jù)庫表結(jié)構(gòu)后,利用多維矩陣生成每份考卷的題目索引,形成考題索引矩陣,以m*n矩陣為例,m是考試人數(shù),而n是某題型的出題數(shù)。矩陣中每個元素是考題的索引,每一行代表試卷中某一題型的出題,將題型矩陣的行向量拼接起來就可以生成索引矩陣,然后將行向量與考場、考卷、考生等屬性一起保存進試卷表新增的屬性列中。
2.3 概率分布
問卷系統(tǒng)提供隨機出題和范圍出題兩種模式,此功能要求計算機計算的矩陣索引元素符合概率密度要求。通過該方法產(chǎn)生不同概率分布的隨機數(shù),能滿足用戶對于題目范圍的要求。符合標準正態(tài)概率密度的X變量,在經(jīng)過aX+b公式運算后產(chǎn)生的隨機數(shù),其平均值、方差分別為(b,a^2),這樣66%的隨機數(shù)就會出現(xiàn)在平均數(shù)b的一個方差之內(nèi)。在問卷系統(tǒng)中平均值、方差都可以由用戶設(shè)定,實現(xiàn)出卷考題范圍的控制。
2.4 基于高并發(fā)的調(diào)度算法
在問卷系統(tǒng)中出卷功能原先使用線性方式來編寫代碼,出卷程序的運算時間比較長,無法滿足用戶對于性能的要求。為了解決這一問題,對出卷功能嘗試采用基于多線程的高并發(fā)調(diào)度算法進行優(yōu)化后,1800人的智能出卷只需要2.3秒,出卷速度有了顯著的提升。
圖1中列出了自動出卷多線程運行的邏輯圖,其算法如下:
(1)考生以200人為單位分組,為每一個分組產(chǎn)生Thn的子線程。
(2)再為每一個Thn子線程,產(chǎn)生5個ThNn的同步子線程,用來運算生成代表單選、多選等題型的考題索引矩陣。
(3)ThNn子線程返回考題索引矩陣,Thn將每個索引矩陣中的一條行向量數(shù)據(jù)與考場、考生、考卷信息作為一條記錄保存在數(shù)據(jù)庫表中。
(4)自動返回出卷完成情況。
2.5 改進后效果對比
依據(jù)上述優(yōu)化方案重新設(shè)計了問卷系統(tǒng),并對系統(tǒng)改進前后的應(yīng)用效果進行了驗證,表1列出了系統(tǒng)改進前后所使用的服務(wù)器,表2列出了系統(tǒng)改進前后的運行速度對比。
從對比結(jié)果來看,盡管改進前系統(tǒng)服務(wù)器的配置比改進后系統(tǒng)服務(wù)器的配置高,但是優(yōu)化后的問卷系統(tǒng)在運算時間上取得顯著改善,可見基于多線程的高并發(fā)對系統(tǒng)運算性能的提升作用是有效的。
參考文獻
[1]胡佳.基于DSN的快速開發(fā)平臺的構(gòu)建及應(yīng)用[J].中國管理信息化,2015(13):76-77.
[2]田斌.基于DORADO平臺開發(fā)的電子問卷系統(tǒng)[J].電子技術(shù)與軟件工程,2018.