999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種高性能的在線Python實(shí)驗(yàn)平臺(tái)的研究

2022-06-20 09:02:46何洪磊
現(xiàn)代信息科技 2022年1期

摘? 要:Python是比較熱門的一種編程語言,搭建Python的在線實(shí)驗(yàn)平臺(tái)可以讓學(xué)生隨時(shí)隨地開展編程實(shí)驗(yàn),滿足當(dāng)前的學(xué)習(xí)需求。實(shí)驗(yàn)系統(tǒng)的性能是系統(tǒng)可用性的一個(gè)瓶頸,文章使用jupyter notebook創(chuàng)建了基礎(chǔ)實(shí)驗(yàn)?zāi)K,然后使用框架頁面之間的通信與調(diào)用來優(yōu)化實(shí)驗(yàn)平臺(tái),最后通過實(shí)驗(yàn)驗(yàn)證了平臺(tái)的性能。證實(shí)該實(shí)驗(yàn)平臺(tái)能夠適用于多用戶、高頻率、高負(fù)載的環(huán)境。

關(guān)鍵詞:Python;在線實(shí)驗(yàn);性能優(yōu)化;頁面通信

中圖分類號(hào):TP311.5 ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2022)01-0011-03

Abstract: Python is a relatively popular programming language. Building an online experimental platform for Python can allow students to carry out programming experiments anytime, anywhere to meet their current learning needs. The performance of the experimental system is a bottleneck of system availability. The paper uses jupyter notebook to create a basic experimental module, and then uses the communication and call between the framework pages to optimize the experimental platform. Finally, the performance of the platform is verified by experiments. It is confirmed that the experimental platform is suitable for multi-user, high frequency and high load environment.

Keywords: Python; online experiment; performance optimization; page communication

0? 引? 言

Python是目前比較熱門的一種編程語言,在人工智能、數(shù)據(jù)分析、網(wǎng)絡(luò)管理等方面有廣泛的應(yīng)用[1]。Python是在1989年由Guido van Rossum設(shè)計(jì)開發(fā)的,本身由其他語言發(fā)展而來,包括C、C++、ABC、Modula-3、Unix shell和一些腳本語言。因此它所寫的腳本能夠和其他大部分語言一起使用,例如C、C++、Java、JavaScript,所以說它是一種編程語言的膠水[2]。Python是一種解釋性語言,沒有編譯環(huán)節(jié),它提供了豐富的基礎(chǔ)庫,并且第三方庫也非常多,所以非常適合初學(xué)者[3]。

因此,目前對(duì)于Python語言的學(xué)習(xí)有比較高的需求,例如高校的計(jì)算機(jī)語言課程、社會(huì)上的計(jì)算機(jī)職業(yè)技能培訓(xùn)大都選擇Python。一些地方甚至還把Python語言作為信息技術(shù)中學(xué)考試科目[4]。

Python是實(shí)踐性很強(qiáng)的課程,純粹的理論課堂授課效果并不理想,需要安排充足的實(shí)驗(yàn)練習(xí)。由于傳統(tǒng)的實(shí)驗(yàn)室機(jī)房練習(xí)受到時(shí)間地點(diǎn)的約束,而現(xiàn)在手機(jī)等智能通訊工具的普及,使用在線Python實(shí)驗(yàn)系統(tǒng)更加能滿足學(xué)習(xí)需求[5]。

文章重點(diǎn)研究如何優(yōu)化實(shí)驗(yàn)平臺(tái)的性能。因?yàn)殡S著用戶數(shù)量的增加以及編程實(shí)驗(yàn)任務(wù)量的增加,實(shí)驗(yàn)平臺(tái)的性能下降。用戶等待時(shí)間逐漸變長,會(huì)嚴(yán)重影響學(xué)習(xí)的效果。

Python在線實(shí)驗(yàn)平臺(tái)的性能優(yōu)化,對(duì)于當(dāng)前的Python課程學(xué)習(xí)提供了較好的解決方案,適用于碎片化的學(xué)習(xí)方式[6]。另外我國的教育資源分布十分不均衡,發(fā)達(dá)地區(qū)的教育資源較多,通過這種在線Python在線實(shí)驗(yàn)平臺(tái)將這些資源共享到供欠發(fā)達(dá)地區(qū)具有較好的社會(huì)意義。

1? Python基礎(chǔ)實(shí)驗(yàn)?zāi)K

一個(gè)完整的Python在線實(shí)驗(yàn)系統(tǒng)包含有理論模塊、實(shí)驗(yàn)?zāi)K、交流模塊。其中最重要的是在線實(shí)驗(yàn)?zāi)K。本文研究的重點(diǎn)是如何提高在線實(shí)驗(yàn)編程系統(tǒng)的性能。

1.1? 基礎(chǔ)實(shí)驗(yàn)?zāi)K的搭建

Python基礎(chǔ)實(shí)驗(yàn)?zāi)K使用jupyter notebook搭建。jupyter notebook是一種交互式筆記本,能夠支持多種編程語言,其中就包括Python。它通過webservice的方式提供用戶使用。所以可以實(shí)現(xiàn)遠(yuǎn)程訪問。Python基礎(chǔ)實(shí)驗(yàn)?zāi)K的配置如下:

(1)在Linux下安裝 Anaconda,默認(rèn)會(huì)安裝jupyter notebook和一些常用的python開發(fā)包。

(2)命令模式下運(yùn)行jupyter notebook,打開瀏覽器的訪問界面,確認(rèn)jupyter notebook安裝成功。

(3)安裝Python課程學(xué)習(xí)所需要的其他第三方包,例如wordcloud等。

(4)生成jupyter配置文件,命令:jupyter notebook --generate-config,然后就生成配置文件jupyter_notebook_config.py

(5)設(shè)置遠(yuǎn)程訪問jupyter notebook的密碼。為了安全性,需要設(shè)置訪問密碼,然后將這個(gè)密碼的哈希算法sha1的值放到配置文件。計(jì)算sha1的方法有很多選擇,可以使用在線工具或者是使用notebook.auth包的passwd()函數(shù)。

(6)修改配置文件。打開配置文件jupyter_notebook_config.py。修改如下部分:

NotebookApp.ip=’服務(wù)器的遠(yuǎn)程訪問IP地址’ #可以用*表示任意地址

NotebookApp.password = u’密碼的sha1值 ‘

本例中的具體設(shè)置為:

NotebookApp.ip=’218.92.23.106’

NotebookApp.password = u’ sha1:f8f7eaadda8c:3f83193252bdac9e9f60b6920f5f02ae7dd03ca9’

(7)用戶遠(yuǎn)程訪問,在瀏覽器中打開網(wǎng)址http://218.92.23.106:8888。輸入密碼就可以正常使用jupyter notebook進(jìn)行Python編程練習(xí),如圖1所示。

1.2? 基礎(chǔ)實(shí)驗(yàn)?zāi)K的缺陷

隨著用戶數(shù)量的增加以及編程實(shí)驗(yàn)任務(wù)量的增加,實(shí)驗(yàn)平臺(tái)的性能下降。用戶等待時(shí)間逐漸變長,會(huì)嚴(yán)重影響學(xué)習(xí)的效果。所以需要優(yōu)化在線實(shí)驗(yàn)系統(tǒng),合理使用服務(wù)器資源,提高運(yùn)行的速度。

2? Python實(shí)驗(yàn)系統(tǒng)性能優(yōu)化

優(yōu)化系統(tǒng)的工作過程如圖2所示。

具體的實(shí)現(xiàn)要點(diǎn)有:

(1)框架網(wǎng)頁必須和三個(gè)服務(wù)器使用相同的主域名,這樣可以解決跨域訪問的問題。例如框架網(wǎng)頁使用www.dm.com,服務(wù)器分別使用jn1.dm.com、jn2.dm.com、jn3.dm.com。

(2)創(chuàng)建框架網(wǎng)頁文件,使用<iframe>包含最優(yōu)服務(wù)器的juypter notebook默認(rèn)首頁,例如http:// jn2.dm.com:8888。

(3)框架網(wǎng)頁和Iframe之間的信息傳遞使用postMessage方法。

發(fā)送信息:

Iframe.contentWindow.postMessage(‘message’, ‘ Iframe _URL’)

接受信息:

window.addEventListener(‘message’, function (event) {

……

}

(4)為了獲取每個(gè)服務(wù)器的狀態(tài),在每個(gè)服務(wù)器端放置一個(gè)10萬次累加的計(jì)算程序,該程序可以返回計(jì)算所用時(shí)間。通過框架網(wǎng)頁Ajax調(diào)用這個(gè)文件,就可以獲得所有服務(wù)器的當(dāng)前狀態(tài)。

(5)為了避免頻繁更換服務(wù)器,如果當(dāng)前服務(wù)器和最優(yōu)服務(wù)器之間性能差別在20%以內(nèi),則在當(dāng)前服務(wù)器執(zhí)行任務(wù);否則選擇運(yùn)算時(shí)間最短的服務(wù)器為用戶的當(dāng)前服務(wù)器,并執(zhí)行任務(wù)。

(6)為了能夠?qū)⒏缚蚣芪募氖髽?biāo)事件專遞到iframe中的用戶文件,以及獲取用戶文件的運(yùn)行狀態(tài),需要修改juypter notebook的模板文件,添加JS代碼。模板文件為notebook/templates/notebook.htm

例如“運(yùn)行”菜單的單擊事件的傳遞:

$(‘#run_cell’).click();

單元格輸出結(jié)果的獲取:

$(“#notebook div[class ~=’selected’]

.output_wrapper.output .output_text pre”).text()

(7)新建工具欄代替juypter notebook原始的工具欄,如圖3所示。首先,隱藏juypter notebook中原來的菜單,通過修改notebook.html模板完成,將ID為”menubar-container”的DIV設(shè)置為display:none。然后在框架網(wǎng)頁中創(chuàng)建工具欄實(shí)現(xiàn)對(duì)juypter notebook的操作。當(dāng)用戶單擊工具欄“運(yùn)行”按鈕時(shí),會(huì)首先選擇最優(yōu)服務(wù)器,然后運(yùn)行文件。

系統(tǒng)執(zhí)行的流程圖如圖4所示。

3? 實(shí)驗(yàn)與性能分析

實(shí)驗(yàn)環(huán)境為6臺(tái)服務(wù)器,6臺(tái)客戶機(jī)。6臺(tái)服務(wù)器的配置是CPU :2核;內(nèi)存:8G;帶寬:10M;操作系統(tǒng)Windows Server 2008 R2 64位企業(yè)版??蛻魴C(jī)使用CPU為Intel core i5-6200U 2.3 GHz、內(nèi)存為8 GB、500 GB硬盤,操作系統(tǒng)是Windows10。瀏覽器使用chrome,版本為89.0.4389.82。

測(cè)試方法:在瀏覽器端使用JavaScript調(diào)用并執(zhí)行相關(guān)的Python程序,然后獲取執(zhí)行時(shí)間,如圖5所示。調(diào)用程序時(shí)按照設(shè)定的頻率循環(huán)執(zhí)行。

通過實(shí)驗(yàn)驗(yàn)證,優(yōu)化后的實(shí)驗(yàn)平臺(tái)性能有了非常大幅的提高。

4? 結(jié)? 論

Python是目前較為熱門的計(jì)算機(jī)編程語言,社會(huì)上有較高的學(xué)習(xí)需求。學(xué)習(xí)好Python語言,編程實(shí)驗(yàn)是非常重要的環(huán)節(jié)。為了讓學(xué)生隨時(shí)隨地可以開展編程實(shí)驗(yàn),搭建在線實(shí)驗(yàn)平臺(tái)是一種較好的解決方案。通過框架頁面之間的通信與調(diào)用來優(yōu)化Python在線實(shí)驗(yàn)平臺(tái),具有較好的性能,能夠適用于多用戶、高頻率、高負(fù)載的環(huán)境。最后通過實(shí)驗(yàn)證明了這一模型的優(yōu)越性。

參考文獻(xiàn):

[1] 陶倩,趙振宇,舒海燕,等.PYTHON在氣象業(yè)務(wù)平臺(tái)的應(yīng)用 [J].新農(nóng)業(yè),2022(2):85-86.

[2] 丁文浩,朱齊亮.基于Python的招聘數(shù)據(jù)爬取與分析 [J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2022(1):43-45.

[3] 韋依洋,吳一凡,李永遠(yuǎn).Python技術(shù)在數(shù)據(jù)可視化中的應(yīng)用研究 [J].福建電腦,2022,38(1):27-31.

[4] 郝靜,平夢(mèng)婷,陳建文,等.基于Python語言的科學(xué)計(jì)算課程教學(xué)改革研究 [J].計(jì)算機(jī)時(shí)代,2022(1):90-92+96.

[5]秦維超,戴曉芬.Python編程學(xué)習(xí)中巧用開源硬件提升問題解決能力 [J].中國信息技術(shù)教育,2022(1):62-63.

[6] 王佳莉.面向計(jì)算思維培養(yǎng)的智慧課堂教學(xué)模式構(gòu)建——以初中Python教學(xué)為例 [J].中國現(xiàn)代教育裝備,2021(24):20-23.

作者簡介:何洪磊(1974—),男,漢族,江蘇連云港人,副教授,碩士,研究方向:軟件工程、人工智能。

主站蜘蛛池模板: 98超碰在线观看| 欧美性精品| 在线欧美国产| 一区二区三区四区精品视频| 国产网站黄| 久久国产精品77777| 欧美国产中文| 另类欧美日韩| 国产97区一区二区三区无码| 午夜福利无码一区二区| 丁香亚洲综合五月天婷婷| 精品無碼一區在線觀看 | 99re在线免费视频| 亚洲视频三级| 青青草原国产一区二区| 国模私拍一区二区| 久久这里只有精品66| 国产精品吹潮在线观看中文| 久久国产精品无码hdav| 欧美一级专区免费大片| 亚洲AV人人澡人人双人| 在线免费不卡视频| 国产91高跟丝袜| 亚洲第一色网站| 国产不卡在线看| 久久精品国产精品一区二区| 欧美日韩在线国产| 午夜日韩久久影院| 99国产精品国产高清一区二区| 97在线公开视频| 欧美亚洲国产精品第一页| 免费中文字幕一级毛片| 久久6免费视频| 99热这里只有成人精品国产| 国产网站黄| 99青青青精品视频在线| 婷婷六月激情综合一区| 激情五月婷婷综合网| 久久国产精品电影| 日本高清在线看免费观看| 久久无码av三级| 国产精品 欧美激情 在线播放 | 国产毛片高清一级国语| 国产成人一区免费观看 | 亚洲女同一区二区| 中文纯内无码H| 99在线观看免费视频| 国产三级a| 人妻丰满熟妇啪啪| 四虎永久免费网站| 一区二区偷拍美女撒尿视频| 中文无码精品a∨在线观看| 69综合网| 国产粉嫩粉嫩的18在线播放91| 国产又黄又硬又粗| 亚洲第一av网站| 在线人成精品免费视频| 欧美日韩综合网| 99久久精彩视频| 久草视频一区| 国产欧美视频综合二区| 欧美日本一区二区三区免费| jizz亚洲高清在线观看| 久久精品丝袜| 性69交片免费看| 26uuu国产精品视频| 成年网址网站在线观看| 人妻少妇久久久久久97人妻| 综合天天色| 无码AV动漫| 亚洲精品片911| 就去色综合| 日韩国产无码一区| 欧美一区二区福利视频| 亚洲综合精品第一页| 青青青视频蜜桃一区二区| 日韩在线2020专区| 91精品国产91久久久久久三级| 欧美第九页| 国产手机在线ΑⅤ片无码观看| 国产成人a毛片在线| a级毛片免费看|