国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于分時分段設(shè)計的心理健康在線測評系統(tǒng)在高并發(fā)用戶下的性能優(yōu)化研究

2020-11-30 09:02張錦盛梁林昌
軟件 2020年9期
關(guān)鍵詞:性能優(yōu)化

張錦盛 梁林昌

摘? 要: 基于B/S架構(gòu)技術(shù)的線上測評或考試系統(tǒng)常常會因?yàn)榇笥脩簟⒏卟l(fā)、大題量、改卷及成績評測過程復(fù)雜的系統(tǒng)特點(diǎn)導(dǎo)致系統(tǒng)在執(zhí)行過程中導(dǎo)致響應(yīng)高延遲,資源高占用,從而對系統(tǒng)的穩(wěn)定性、可靠性造成極大的隱患。這也是本文基于我校與企業(yè)的橫向課題——中小學(xué)生心理健康云平臺下的線上測評系統(tǒng)所遇到的問題解決方法,通過對B/S與C/S架構(gòu)優(yōu)缺點(diǎn)的混合運(yùn)用的研究。融入現(xiàn)代JS、Ajax、JSP內(nèi)置對象、多線程與線程池等技術(shù),對線上測評業(yè)務(wù)重新進(jìn)行分時、分段的業(yè)務(wù)處理設(shè)計,已達(dá)到性能及系統(tǒng)可靠性的優(yōu)化和保證。也為類似的基于B/S技術(shù)高并發(fā)系統(tǒng)的性能優(yōu)化提供一種基于軟件設(shè)計模式的低成本解決方案。

關(guān)鍵詞: 線上測評系統(tǒng);性能優(yōu)化;分時分段;算法設(shè)計

中圖分類號: TP311.5? ? 文獻(xiàn)標(biāo)識碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.09.054

本文著錄格式:張錦盛,梁林昌. 基于分時分段設(shè)計的心理健康在線測評系統(tǒng)在高并發(fā)用戶下的性能優(yōu)化研究[J]. 軟件,2020,41(09):204206

【Abstract】: online evaluation or examination system based on B/S architecture technology may often result in high response delay and resource occupation in implementation process for system characteristics of large users, high concurrency, large amount of questions, testpaper change and complicated performance evaluation process, cause great hidden danger to system stability and reliability. The article researches problems and solutions of online evaluation system under mental health cloud platform of primary and secondary school students, which is a horizontal subject of our school and enterprises, based on mixed application research of advantages and disadvantages of B/S and C/S architecture. It integrates modern JS, AJAX, JSP built-in objects, multithreading and thread pool technology, redesigns online evaluation business of time division, achieves optimization and guarantee of performance and system reliability, which provides low-cost solution based on software design pattern for similar performance optimization of high concurrency system based on B/S technology.

【Key words】: Online evaluation system; Performance optimization; Time division; Algorithm design

0? 引言

當(dāng)前線上教育已經(jīng)越來越普及,學(xué)校線上考試在試題管理、改卷算分、統(tǒng)計分析上有著不可比擬額優(yōu)勢,受到各層次學(xué)校的青睞?;贐/S結(jié)構(gòu)的考試系統(tǒng)具有免安裝、維護(hù)容易的優(yōu)點(diǎn)。但由于整個系統(tǒng)的業(yè)務(wù)操作都由服務(wù)器來承擔(dān),因此在業(yè)務(wù)高時間復(fù)雜度、高空間復(fù)雜度,大用戶、高并發(fā)數(shù)的運(yùn)行時,服務(wù)器負(fù)荷劇增,常常導(dǎo)致性能嚴(yán)重下降,不僅降低了用戶的使用體驗(yàn)感,還對系統(tǒng)的穩(wěn)定性、可靠性造成了極大的隱患[1]。

1? 心理健康測評系統(tǒng)面臨的高并發(fā)、高延遲、低響應(yīng)的系統(tǒng)問題

當(dāng)前我們正在開發(fā)一個基于B/S結(jié)構(gòu)的中小學(xué)生心理健康數(shù)據(jù)在線評測系統(tǒng)。該系統(tǒng)在結(jié)構(gòu)上與一般考試系統(tǒng)基本相同,但在業(yè)務(wù)復(fù)雜度和數(shù)據(jù)量上要高于一般考試系統(tǒng)。具體體現(xiàn)在①相比一般考試系統(tǒng)單套試卷的試題數(shù)量為30~50,心理測評系統(tǒng)試卷試題則達(dá)到80~100的數(shù)量。②作為云服務(wù)的心理測評系統(tǒng)將面向數(shù)十所甚至上百所學(xué)校,其用戶數(shù)及其并發(fā)數(shù)量更大,并發(fā)問題更加突出和嚴(yán)峻。③試卷改卷更為復(fù)雜,既要根據(jù)維度按系數(shù)計算,還要根據(jù)效度判斷成績的有效性,最后還要進(jìn)行復(fù)雜的成績統(tǒng)計與分析[2-3]。其系統(tǒng)的業(yè)務(wù)設(shè)計大致可以通過圖1來說明。

從該業(yè)務(wù)圖上我們看到一次完整的測評過程包括了從獲取試題信息、生成試卷并加載到瀏覽器中,一直到提交保存答題結(jié)果、改卷、分析試卷,保存成績與分析結(jié)果。在最初的業(yè)務(wù)結(jié)構(gòu)設(shè)計中幾乎所有的業(yè)務(wù)工作都放在了web服務(wù)器上。測評系統(tǒng)進(jìn)行在線測評的執(zhí)行時間=數(shù)據(jù)庫讀取時間+服務(wù)器業(yè)務(wù)處理時間,經(jīng)過測試后,如圖2所示。

從上圖看出:性能低、可靠性和穩(wěn)定性差成為了在線測評系統(tǒng)所面臨的問題。

2? 平攤服務(wù)器壓力,分時業(yè)務(wù)處理的系統(tǒng)性能優(yōu)化設(shè)計及改進(jìn)方法思考

在采用跟蹤用戶開考和結(jié)束考試這兩個業(yè)務(wù)的處理時長,以及對服務(wù)器CPU、內(nèi)存資源在這兩個時間段中的觀察,CPU在這兩個時段中的負(fù)載均長期處于100%。服務(wù)器內(nèi)存占用率從平時的約52~60%提高到75~96%。因此,解決測評系統(tǒng)關(guān)于可靠性、穩(wěn)定性低、性能差的問題,我們從兩個軟件過程設(shè)計及改進(jìn)的角度進(jìn)行入手:一是優(yōu)化業(yè)務(wù)過程及其算法,降低與數(shù)據(jù)庫的存取頻率。二是打破服務(wù)器閑忙時段,以時間換效率,平攤業(yè)務(wù)處理負(fù)載,移除部分非核心業(yè)務(wù)到客戶端,降低服務(wù)器處理壓力[4-5]。

3? 系統(tǒng)改進(jìn)具體方案

3.1? 使用application暫存試卷及改卷分析數(shù)據(jù),降低用戶與數(shù)據(jù)庫之間的存取頻率。

根據(jù)考試計劃按試卷ID以HashMap的數(shù)據(jù)結(jié)構(gòu)將試卷及其改卷分析數(shù)據(jù)在考試前從書庫中獲取并存儲到applcation中。學(xué)生開啟考試不再從數(shù)據(jù)庫中獲取試卷數(shù)據(jù)。這樣打開試卷的時間復(fù)雜度就從原來的O(m),變?yōu)榱薕(1)。當(dāng)學(xué)生提交試卷時,試卷在服務(wù)器上進(jìn)行算分統(tǒng)計處理,也不需要再從數(shù)據(jù)庫中提取包括維度因子、程度區(qū)間等試卷改卷分析數(shù)據(jù),從而解決了開考和提交試卷兩個階段的高并發(fā)用戶的高負(fù)荷數(shù)據(jù)庫操作。

3.2? 基于Js技術(shù)實(shí)現(xiàn)客戶端的試卷生成,使用客戶端分擔(dān)服務(wù)器計算負(fù)荷

學(xué)生測評試卷在登錄后,從application中獲取測評試題數(shù)據(jù)并轉(zhuǎn)換為json數(shù)據(jù)。客戶端通過Js對json數(shù)據(jù)的解析和拼接,在html頁面中完成試卷渲染。從而將原本該由服務(wù)器實(shí)現(xiàn)的試卷生成和加載在客戶端進(jìn)行實(shí)現(xiàn)。

3.3? 分時實(shí)現(xiàn)試卷答題結(jié)果的數(shù)據(jù)庫保存

使用分時定時方式解決因考試時間結(jié)束時高并發(fā)的試卷提交,每套試卷上百道答題結(jié)果的數(shù)據(jù)庫保存導(dǎo)致服務(wù)器及數(shù)據(jù)庫高負(fù)荷引發(fā)癱瘓的風(fēng)險。方法在客戶端使用Js及隨機(jī)數(shù),讓每個考試用戶在隨機(jī)的1的2分鐘的時長內(nèi)自動對當(dāng)前答題結(jié)果進(jìn)行數(shù)據(jù)庫傳輸和提交操作[6-7]。傳輸內(nèi)容需做增量處理,避免試卷答題結(jié)果的數(shù)據(jù)庫存儲的無效重復(fù)操作。為實(shí)現(xiàn)增量處理。

3.4? 基于session、數(shù)據(jù)庫結(jié)合的雙重考試過程安全性保障

首先,考試開始后每個用戶會將application中的試卷試題數(shù)據(jù)與用戶ID共同生成一份試卷答題數(shù)據(jù)結(jié)構(gòu)存儲與session中。JS會根據(jù)控件的修改狀態(tài)改變設(shè)置每道題的修改狀態(tài),在3中定時試卷答案保存時會首先重新設(shè)置session中每道題的修改狀態(tài),從而保證3中的試卷答題結(jié)果的數(shù)據(jù)保存只會采用增量保存。同時由于session的銷毀擁有一個周期,因此如果學(xué)生用戶失手關(guān)閉了當(dāng)前測評頁面,使用session能快速將頁面還原到關(guān)閉之前的狀態(tài)。

而如果用戶超過session生存周期或更換瀏覽器甚至客戶端主機(jī),在檢測不到session中的用戶試卷答題結(jié)果時,系統(tǒng)將請求數(shù)據(jù)庫獲取用戶最近一次定時保存的答題結(jié)果數(shù)據(jù),并與application中的試卷信息重新還原回最近一次試卷及其答題狀態(tài)。從而保證測評系統(tǒng)考試過程安全性[8-9]。

3.5? 基于多線程和線程池的改卷算法過程設(shè)計

在學(xué)生交卷時,使用多線程方式對答題結(jié)果的數(shù)據(jù)庫保存和改卷算分及結(jié)果分析進(jìn)行了分段同步/異步相結(jié)合的處理方式。其中答題結(jié)構(gòu)的數(shù)據(jù)庫保存采用同步處理方式,頁面需等待保存完成后才能返回(由于前期的答題結(jié)果的定時增量提交保存算法設(shè)計,同步處理通常所需耗時很短)。試卷的改卷算分處理則在服務(wù)器中啟動一個線程來實(shí)施異步處理。由于application中存儲有試卷改卷算分所需的數(shù)據(jù),因此改卷算分不再需要與數(shù)據(jù)庫發(fā)生獲取數(shù)據(jù)操作。僅當(dāng)處理得出結(jié)果時才往數(shù)據(jù)庫進(jìn)行結(jié)果保存操作。

高并發(fā)的試卷算分線程統(tǒng)一由線程池進(jìn)行管理,初始化線程池,保證服務(wù)器能擁有對試卷答題結(jié)果保存的優(yōu)先處理能力。確保答題結(jié)果的安全性和用戶提交操作的實(shí)時響應(yīng)。在服務(wù)器資源被釋放后,才提高改卷算法線程數(shù)。同步與異步相結(jié)合,運(yùn)用線程池管理高并發(fā)線程,通過延長服務(wù)器處理時間,既提高了用戶交卷的響應(yīng)速度,同時又保證了系統(tǒng)的穩(wěn)定性、可靠性及安全性[10]。

在算法設(shè)計中的多線程設(shè)計中,我方還增加了對于線程數(shù)量及其狀態(tài)的實(shí)時監(jiān)控設(shè)計,方便了管理端對改卷線程處理信息的監(jiān)控管理。

從測評系統(tǒng)改進(jìn)后的壓力和響應(yīng)時間測試結(jié)果來看,由于取卷不再需要向數(shù)據(jù)庫獲取試卷試題數(shù)據(jù),同時試卷的內(nèi)容的加載和試卷頁面渲染都放在客戶端,因此取卷業(yè)務(wù)的響應(yīng)時間不再受到高并發(fā)的考試啟動請求的影響,2~3秒的響應(yīng)時間在用戶體驗(yàn)?zāi)軌蚪邮艿姆秶?。而考試結(jié)束時的交卷業(yè)務(wù),由于服務(wù)器采用了分段進(jìn)行的試卷答題結(jié)果數(shù)據(jù)庫保存的同步操作和試卷改卷算法的異步多線程處理。在極端情況下(該情況為1分鐘以內(nèi)并發(fā)交卷,此時試卷還沒有進(jìn)行過任何一次的定時試卷答題結(jié)果的數(shù)據(jù)庫提交存儲),試卷交卷均能在5秒以內(nèi)完成保存,并結(jié)束交卷。可以預(yù)測的是,在正常考試情況下,系統(tǒng)交卷操作能控制在1秒內(nèi)完成。給予考試人員良好的使用體驗(yàn)。

4? 結(jié)論

采用基于平攤服務(wù)器壓力,分時業(yè)務(wù)處理的在線測評系統(tǒng)性能優(yōu)化設(shè)計及改進(jìn)方法不僅取決于對考試業(yè)務(wù)過程與算法的優(yōu)化設(shè)計,更取決于現(xiàn)代Web技術(shù)的發(fā)展,這里包括線程池、JS、ajax、json數(shù)據(jù)交互技術(shù)、甚至基于它的控件渲染技術(shù)。而隨著分布式計算機(jī)、云計算的應(yīng)用加入,系統(tǒng)能承受的并發(fā)數(shù)和系統(tǒng)可靠性還將具有極大的提高空間。

參考文獻(xiàn)

[1]徐嘉. 分布式計算機(jī)應(yīng)用水平考試系統(tǒng)設(shè)計與實(shí)現(xiàn)[J]. 軟件工程, 2020, 23(2): 50-52+46.

[2]鐵治欣, 林永興, 冉宇瑤. 基于B/S架構(gòu)的C語言在線考試系統(tǒng)設(shè)計與實(shí)現(xiàn)[J]. 軟件導(dǎo)刊, 2019, 18(10): 103-106+110.

[3]陳尚書, 文斌. 移動端在線考試系統(tǒng)設(shè)計與實(shí)現(xiàn)[J]. 軟件導(dǎo)刊, 2019, 18(5): 117-121.

[4]肖剛. 基于B/S結(jié)構(gòu)的考試系統(tǒng)性能優(yōu)化[J]. 電子設(shè)計工程, 2018, 26(22): 160-163+168.

[5]熊宗楊, 薛學(xué)斌, 王欣, 等. 基于過程化考核的在線考試系統(tǒng)的研究與實(shí)現(xiàn)[J]. 重慶師范大學(xué)學(xué)報(自然科學(xué)版), 2018, 35(6): 75-81.

[6]閆中威, 孫大嵬. B/S模式在線考試系統(tǒng)性能優(yōu)化及實(shí)現(xiàn)[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2016, 25(10): 81-85.

[7]許永達(dá). 基于線程池的高并發(fā)訪問考試系統(tǒng)設(shè)計[J]. 計算機(jī)與現(xiàn)代化, 2013(3): 232-234+238.

[8]張晶, 林鵬. 使用負(fù)載均衡模式優(yōu)化B/S架構(gòu)在線考試系統(tǒng)[J]. 科技風(fēng), 2012(7): 18.

[9]陳德錄, 劉鋒. 基于B/S的網(wǎng)絡(luò)考試系統(tǒng)高并發(fā)性能優(yōu)化研究與實(shí)現(xiàn)[J]. 電腦知識與技術(shù), 2010, 6(14): 3658-3659.

[10]徐春成. 基于C/S模式下的計算機(jī)課程考試系統(tǒng)開發(fā)研究[J]. 軟件, 2016, 37(8): 62-64.

猜你喜歡
性能優(yōu)化
SQL Server數(shù)據(jù)庫性能優(yōu)化的幾點(diǎn)分析
基于SQL數(shù)據(jù)庫的性能優(yōu)化的探討