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

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

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

摘? 要:Python是比較熱門的一種編程語(yǔ)言,搭建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,然后使用框架頁(yè)面之間的通信與調(diào)用來(lái)優(yōu)化實(shí)驗(yàn)平臺(tái),最后通過(guò)實(shí)驗(yàn)驗(yàn)證了平臺(tái)的性能。證實(shí)該實(shí)驗(yàn)平臺(tái)能夠適用于多用戶、高頻率、高負(fù)載的環(huán)境。

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

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

因此,目前對(duì)于Python語(yǔ)言的學(xué)習(xí)有比較高的需求,例如高校的計(jì)算機(jī)語(yǔ)言課程、社會(huì)上的計(jì)算機(jī)職業(yè)技能培訓(xùn)大都選擇Python。一些地方甚至還把Python語(yǔ)言作為信息技術(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í)間逐漸變長(zhǎng),會(huì)嚴(yán)重影響學(xué)習(xí)的效果。

Python在線實(shí)驗(yàn)平臺(tái)的性能優(yōu)化,對(duì)于當(dāng)前的Python課程學(xué)習(xí)提供了較好的解決方案,適用于碎片化的學(xué)習(xí)方式[6]。另外我國(guó)的教育資源分布十分不均衡,發(fā)達(dá)地區(qū)的教育資源較多,通過(guò)這種在線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是一種交互式筆記本,能夠支持多種編程語(yǔ)言,其中就包括Python。它通過(guò)webservice的方式提供用戶使用。所以可以實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)。Python基礎(chǔ)實(shí)驗(yàn)?zāi)K的配置如下:

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

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

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

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

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

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

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

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

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

NotebookApp.ip=’218.92.23.106’

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

(7)用戶遠(yuǎn)程訪問(wè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í)間逐漸變長(zhǎng),會(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)的工作過(guò)程如圖2所示。

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

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

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

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

發(fā)送信息:

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

接受信息:

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

……

}

(4)為了獲取每個(gè)服務(wù)器的狀態(tài),在每個(gè)服務(wù)器端放置一個(gè)10萬(wàn)次累加的計(jì)算程序,該程序可以返回計(jì)算所用時(shí)間。通過(guò)框架網(wǎng)頁(yè)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中原來(lái)的菜單,通過(guò)修改notebook.html模板完成,將ID為”menubar-container”的DIV設(shè)置為display:none。然后在框架網(wǎng)頁(yè)中創(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è)版。客戶機(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í)行。

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

4? 結(jié)? 論

Python是目前較為熱門的計(jì)算機(jī)編程語(yǔ)言,社會(huì)上有較高的學(xué)習(xí)需求。學(xué)習(xí)好Python語(yǔ)言,編程實(shí)驗(yàn)是非常重要的環(huán)節(jié)。為了讓學(xué)生隨時(shí)隨地可以開展編程實(shí)驗(yàn),搭建在線實(shí)驗(yàn)平臺(tái)是一種較好的解決方案。通過(guò)框架頁(yè)面之間的通信與調(diào)用來(lái)優(yōu)化Python在線實(shí)驗(yàn)平臺(tái),具有較好的性能,能夠適用于多用戶、高頻率、高負(fù)載的環(huán)境。最后通過(guò)實(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語(yǔ)言的科學(xué)計(jì)算課程教學(xué)改革研究 [J].計(jì)算機(jī)時(shí)代,2022(1):90-92+96.

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

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

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

主站蜘蛛池模板: 欧美在线视频a| AV熟女乱| 91青青草视频| 亚洲精品视频免费| 人妻免费无码不卡视频| 91口爆吞精国产对白第三集| 欧美亚洲国产日韩电影在线| 国产白浆在线观看| 国产美女在线免费观看| 亚洲美女操| a毛片免费观看| 日本AⅤ精品一区二区三区日| 日韩毛片基地| 久久久久青草大香线综合精品| 日本亚洲成高清一区二区三区| 亚洲黄色高清| 无码综合天天久久综合网| 又大又硬又爽免费视频| 成人精品免费视频| 亚洲精品无码在线播放网站| 亚洲黄网视频| 国模极品一区二区三区| 国产成人午夜福利免费无码r| 国产成人高精品免费视频| 高清无码不卡视频| 国内精品视频区在线2021| 亚洲精品777| 99re视频在线| 国产69精品久久久久妇女| 成人国产免费| 色屁屁一区二区三区视频国产| 亚洲精品福利网站| www.av男人.com| 亚洲欧美精品在线| 国产精品露脸视频| 97在线免费视频| 欧美不卡视频在线| 国产电话自拍伊人| 精品一區二區久久久久久久網站| 国产日本欧美亚洲精品视| 久久semm亚洲国产| 久久精品aⅴ无码中文字幕| 亚洲人成网站色7777| 激情国产精品一区| 国产成人精品亚洲日本对白优播| 91精品人妻互换| 美女国产在线| 欧美无专区| 欧美日韩国产在线人| 一级毛片在线直接观看| 熟女成人国产精品视频| 亚洲色欲色欲www在线观看| 毛片免费观看视频| 久青草免费视频| 欧美一级大片在线观看| 中国特黄美女一级视频| 国产原创自拍不卡第一页| 99久久国产综合精品女同| 亚洲国产一成久久精品国产成人综合| 国产午夜福利在线小视频| 亚洲成人精品久久| 免费a级毛片视频| 国产精品久久久久婷婷五月| 日韩精品免费一线在线观看| 亚洲欧美精品日韩欧美| 精品国产一二三区| 在线亚洲小视频| 尤物在线观看乱码| 朝桐光一区二区| 一级成人欧美一区在线观看| 日本道综合一本久久久88| 人妻中文久热无码丝袜| 亚洲国产综合自在线另类| 一级看片免费视频| 精品人妻无码中字系列| 国产精彩视频在线观看| 国产欧美精品一区aⅴ影院| 99re在线免费视频| 试看120秒男女啪啪免费| 视频二区亚洲精品| 欧美一区二区福利视频| yy6080理论大片一级久久|