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

?

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

2020-12-14 04:35張錦盛梁林昌
軟件導(dǎo)刊 2020年9期
關(guān)鍵詞:性能優(yōu)化

張錦盛 梁林昌

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4 ?結(jié)論

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

參考文獻(xiàn)

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

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

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

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

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

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

[7]許永達(dá). 基于線程池的高并發(fā)訪問(wèn)考試系統(tǒng)設(shè)計(jì)[J]. 計(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í)與技術(shù), 2010, 6(14): 3658-3659.

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

猜你喜歡
性能優(yōu)化
SQL Server數(shù)據(jù)庫(kù)性能優(yōu)化的幾點(diǎn)分析
基于SQL數(shù)據(jù)庫(kù)的性能優(yōu)化的探討
长兴县| 满城县| 涟源市| 巩义市| 苏州市| 巴里| 镇沅| 正安县| 西充县| 汽车| 安吉县| 盈江县| 五台县| 宁安市| 巢湖市| 英德市| 随州市| 确山县| 余干县| 双牌县| 淮南市| 肇东市| 定兴县| 米泉市| 昭通市| 桂平市| 松原市| 玛纳斯县| 曲水县| 尉氏县| 九龙城区| 竹山县| 博湖县| 新郑市| 千阳县| 林西县| 许昌县| 苍溪县| 贵港市| 鹤庆县| 同德县|