音視頻FAQ(一):視頻直播卡頓

一、摘要

本文介紹了視頻直播卡頓的四個主要原因,用戶網絡問題、用戶設備性能問題、技術路線的選擇和實現問題。因本文主要闡述視頻直播的卡頓,故技術路線的實現指的是:CDN供應商的實現問題,包含CDN性能不足、CDN地區覆蓋不足。對于每個原因,提供了初步判斷和進一步診斷的方法和技術工具,并列出了關鍵性能指標以幫助診斷和解決問題。

二、視頻直播常見問題系列

對于音視頻開發者來說,掌握排查問題的技術技巧方法是非常必要的,排查問題的技術方法也能夠幫助開發者更好地了解音視頻技術的原理和工作機制,從而更加深入地理解音視頻開發中遇到的各種問題。

即構基于多年實時互動領域技術的沉淀和客戶服務保障,我們將推出《視頻直播技術FAQ》系列文章,將實時互動技術領域的常見問題和經驗分享出來,同時會針對具體問題附上業務通識和常用解決方案以及案例經驗,希望本系列能成為你手邊的音視頻通識冊子,幫助到開發者們快速定位問題并找到合適的解決方案。

本系列將每周持續更新,目前已整理了以下常見問題:
1. 視頻直播卡頓
2. 延時高
3. 音畫不同步
4. 視頻花屏、綠屏
5. 視頻黑屏
6. 視頻放大或黑邊
7. 首開慢
8. 音視頻流控
9. 視頻模糊
10. 無法打開攝像頭
11. 音頻回聲
12. 音量太小
13. 音頻噪聲
14. 無聲
15. 上下麥音量變化

本文是本系列的第一篇文章《視頻直播卡頓》,視頻卡頓是音視頻開發者最為關注的問題之一。希望通過本文向開發者們介紹實時音視頻中視頻卡頓問題的相關技術,包括問題表現、常見場景、問題定位排查和解決方案,同時提供實際案例和預防措施,幫助開發者更好的解決這一問題。

三、視頻直播卡頓問題處理

根據研究,降低播放卡頓率和縮短卡頓時長不僅可以改善用戶體驗,還有助于提升用戶觀看時長和留存率,進而為平臺或APP帶來更多的價值和收益。

行業內通用的FAQ處理辦法一般分為四個步驟,發現問題,定位問題,排查問題,并提供相應的解決方案。視頻直播卡頓問題我們將按照該解決思路進行剖析,核心在于定位卡頓問題產生的模塊,排查產生模塊的具體原因。

四、視頻直播卡頓問題表現

卡頓是影響視頻觀看體驗的常見問題,它會讓用戶感到不適和沮喪。在視頻直播場景下,卡頓的判斷主要依靠觀眾和主播的感受,因此它是一個相對主觀的問題。

一般是指實時音視頻傳輸過程中,因網絡條件、設備性能受限等原因,引起的視頻播放斷斷續續、不流暢、甚至定格等現象。行業內并沒有統一的標準來定義卡頓,但一些第三方音視頻廠商已經對卡頓進行了明確的定義,

其中即構科技就是一個很好的例子。即構科技認為:卡頓在代碼層面是指實時音視頻通話過程中,視頻幀率設置不低于 5 fps 時,連續渲染的兩幀視頻之間間隔超過 500 ms,即記為一次視頻卡頓。

我們通常能感受到的卡頓表現形式為:
1. 視頻卡頓或停頓。
2. 音頻聲音異常或延遲。
3. 視頻和音頻不同步。
4. 直播流中斷或丟失。

五、視頻卡頓問題排查定位

以下是一些可能導致直播卡頓的原因:
1. 用戶網絡問題(含主播端和用戶端)
2. 用戶設備性能問題 (含主播端和用戶端)
3. CDN供應商的問題(含CDN性能不足、CDN地區覆蓋不足)

六、原因一:用戶網絡問題

一個完整的直播應用的數據流通常涉及多個環節。首先,主播推流將內容傳輸至直播服務器。然后,直播服務器需要將內容傳輸至CDN服務器。最后,用戶可以通過拉流觀看直播。因此,整個數據流過程包括以下幾個步驟:

1. 主播推流并將內容傳輸至直播服務器。
2. 直播服務器將內容傳輸至CDN服務器。
3. 用戶通過拉流觀看直播。

對于實時音視頻流的服務來說,網絡環境對用戶體驗有著至關重要的影響。當直播流出現卡頓時,通常涉及到主播端、觀眾端和CDN傳輸三個主要部分。需要分別判斷是主播端卡頓還是用戶端卡頓。

如何判斷主播端或觀眾端網絡問題

全局觀察,通過對比分析可以初步判斷卡頓問題更可能出現在哪個環節。

判斷主播端卡頓:如果發現所有的觀眾都出現頻繁卡頓,那么問題可能出在主播端或中間的傳輸網絡。

判斷用戶端卡頓:如果不是大面積的觀眾出現卡頓,那么問題可能出在觀眾端或特定的網絡環境。

技術手段判斷,為了更準確判斷主播端卡頓,通常會使用技術手段來判斷網絡問題,自研監控系統和使用第三方SDK自帶的監控平臺操作步驟大同小異,分為這6步。定義監控目標–> 選擇監控工具–> 部署監控點–> 實時收集數據–> 生成日志–> 監控與優化。

監控音視頻的本質:數據的生產和消費,從音視頻播放器中實時收集、發送、存儲、分析到展示關于音視頻流狀態的關鍵數據的整個流程。這個流程為監控人員或系統提供了實時的信息來檢測、定位和解決潛在的播放問題。

  • 定義監控目標:確定你希望從監控中得到什么信息。這可能包括視頻的播放質量、緩沖次數、延遲、觀眾的設備和地理位置等。

  • 選擇監控工具:使用Wireshark、iperf、ping或FFprobe等在線帶寬測試工具檢查主播的上傳速度。主播端的上傳速度應該比直播的碼率高出一定的余量。觀眾端的下載速度應該至少與直播的碼率相匹配。上述專業的網絡監控工具使用門檻較高,需要主播和觀眾具備一定的技術背景。許多直播軟件和第三方音視頻服務SDK提供實時的上傳幀率、丟幀數和其他關鍵指標。這可以幫助判斷是否是主播端的問題。如即構科技的星圖監控平臺(https://www.zego.im/product/prism)。

  • 部署監控點:音視頻應用在運行過程中,會實時收集各種數據并發送到服務器,例如發送和接收的數據包數量、丟包率、延遲等。這些數據可以用來實時監控網絡狀態,并在出現問題時及時進行調整。

主播端打點數據指標:

  • 推流的實時幀率:如果幀率較低,可能是網絡帶寬不足導致的。
  • 推流的丟包率:丟包率較高可能是網絡不穩定或質量較差。
  • 上行帶寬:如果帶寬較小且不足以支持當前的推流質量,可能會導致卡頓。

觀眾端打點數據指標:

  • 緩沖時間:頻繁緩沖或緩沖時間過長可能是網絡不足導致的。
  • 下行帶寬:如果帶寬較小且無法滿足當前的播放質量,可能會導致卡頓。
  • 觀眾端設備的性能數據,如CPU使用率、內存使用率等:如果設備性能較差,可能無法流暢播放高質量的直播流。
  • 生成日志分析:音視頻應用通常會生成詳細的日志,其中包含了關于網絡狀態、音視頻數據流、播放器狀態等各種信息。通過分析這些日志,可以獲取到網絡狀況的詳細信息,例如網絡延遲,丟包率等。

  • 問題定位與解決:當檢測到異常的卡頓事件時,進一步深入分析數據,確定問題的根本原因,這可能涉及到網絡質量、服務器性能、內容編碼等。使用第三方服務的監控平臺則能更快速定位問題,如ZEGO即構星圖的質量分析模塊幫助開發者低門檻、高效地發現問題并進行定位歸因,輸出解決方案。還可以根據回調給用戶提示,如讓用戶切換網絡環境,或降低推流分辨率。

  • 實時監控與反饋:根據長期的卡頓監控數據,不斷優化流媒體的傳輸和播放設置,以減少未來的卡頓事件。即構ZEGO星圖的業務運營跟蹤和監控告警功能:提供豐富的大盤數據幫助開發者觀察業務運營態勢,如用戶體驗、用戶人數、推拉流規模、服務狀況多維度全方位監控業務運轉。

音視頻服務商監測平臺:
即構ZEGO星圖 (https://www.zego.im/product/prism )星圖平臺是一個音視頻質量運營平臺,可全面監測音視頻服務,低門檻高效地定位排查問題。質量分析模塊支持網絡、設備、用戶行為等多視角多維度排查音視頻問題,可獲取到實時的網絡質量數據。
在這里插入圖片描述

解決方案:用戶網絡問題

針對網絡帶寬不足的解決方案,不管是主播端還是觀眾端,解決方案都是進行網絡優化,提示用戶檢查網絡或嘗試重新鏈接或切換至更好的網絡環境。

如果在確認了主播端和觀看端沒有網絡問題之后,視頻緩沖或卡頓問題仍然存在,下一步就是評估用戶設備的性能是否是根本原因。設備性能不足也可能會影響直播體驗,導致用戶不滿意。

七、原因二、用戶設備性能問題 (含主播端和用戶端)

如何判斷用戶設備問題

**初步判斷:**如果視頻直播在各種網絡環境下都出現卡頓問題,那么可以考慮是否是由于設備性能跟視頻流暢度播放所需的視頻參數不匹配。

直播的完整數據流包括:采集、前處理、編碼、傳輸、解碼、后處理、渲染。在這個過程中,卡頓問題可能出現在不同的階段,并且可能是由于主播端或觀眾端的設備問題引起的。以下幾個因素是導致設備性能問題進而導致視頻緩沖或卡頓。

1. 采集光線要求:手機在昏暗的場景下采集視頻可能導致采集幀率下降,這是由攝像頭的自動曝光策略決定的。雖然昏暗的場景下的低幀率不一定直接導致傳統意義上的"網絡卡頓",但它確實可能影響到視頻的流暢性和用戶體驗。
2. 編解碼要求:編解碼過程是一個計算密集型任務,都需要大量的計算能力。如果用戶的設備性能不足,可能導致編解碼延遲,從而引起卡頓。
3. 內存要求:高質量的視頻流也需要更多的內存來緩存和處理。如果設備的內存有限,尤其是當多個應用同時運行時,設備可能無法為視頻播放提供足夠的內存,導致卡頓。
4. 渲染能力:除了解碼,設備還需要渲染視頻。低端設備的圖形處理單元(GPU)可能無法快速渲染高清視頻幀,導致視頻播放不流暢。
5. 視頻參數:像幀率、碼率和分辨率這樣的視頻參數,決定了視頻的質量和播放的流暢性。例如,一個高幀率和高碼率的1080p視頻在頂級設備上播放得很流暢,但在老舊或低端設備上可能會遇到問題。

如何判斷主播端或觀眾端設備問題

判斷主播端設備問題:如果發現所有的觀眾都出現頻繁卡頓,排除主播端網絡帶寬不足,那么檢查主播端設備性能問題。檢查主播端CPU、GPU和內存使用情況,高的資源使用率可能導致直播軟件性能降低。例:主播端在直播數據流過程中,芯片的性能、使用的美顏算法、編碼格式都是需要消耗設備性能。

判斷用戶端設備問題:如果不是大面積的觀眾出現卡頓,排除用戶端網絡帶寬不足,那么問題可能出在觀眾端設備性能問題。古老或低端的設備可能無法流暢地播放高質量的視頻流。詢問用戶他們的設備型號和版本信息可以提供一些線索。

為了進一步診斷具體的問題,可以使用各種工具和技術。如網絡質量檢測、設備性能監控和日志分析。
1. 媒體信息查看工具:如MediaInfo或ffprobe等工具,可以查看視頻文件的詳細參數,包括分辨率和碼率。
2. 性能分析工具:對于判斷設備解碼性能是否足夠,可以使用設備自帶的性能監視工具,如Android的"開發者選項"中的"GPU呈現分析",或者專門的性能分析軟件如Perfetto等。

解決方案:用戶設備問題

主播端解決方案:
1. 使用補光燈:通過補光,可以使攝像頭在明亮的環境中工作,保持穩定的高幀率,或者在后端進行視頻處理改善畫質。從而避免視頻的"卡頓"現象。**
2. 更換設備:不僅僅是手機,攝像頭和麥克風的選擇也十分關鍵。高質量的設備可以提供更好的音視頻信號,特別是在高清晰度的直播中。
3. 降低分辨率:這確實是一個常見的技巧,特別是當直播間的觀眾數量增加,或網絡環境不穩定時。降低分辨率可以有效減輕編碼的壓力,同時保證流暢性。
4. 使用硬件編碼:大部分現代設備都支持硬件加速的編碼方法,它使用專門的硬件組件進行視頻編碼,比起傳統的軟件編碼,對CPU的負載較小。

觀眾端解決方案:
1. 轉碼:這一方案主要集中在服務器端。服務器接收到主播的流后,可以對其進行實時轉碼,生成不同的質量選項(例如,高、中、低),觀眾可以根據自己的網絡環境和設備性能選擇合適的質量觀看。
2. 大小流策略:這是一個與轉碼相似但更為靈活的解決方案。主播可以同時推送不同的視頻流,例如高清流和標清流。觀眾端應用則可以根據當前的網絡狀況自動選擇最佳的流,或允許用戶手動切換。

如果排除了主播端和觀眾端的網絡和設備問題,那么很有可能是CDN供應商的原因。CDN的性能也會影響到直播的質量。例如,如果CDN性能不足、地區覆蓋不足可能導致直播的卡頓。因此,也需要收集和分析這些環節的數據,如CDN的緩存命中率等。

八、原因三:CDN供應商問題

大多數直播應用都選擇使用現有的CDN供應商,因為搭建和維護自己的CDN網絡需要巨大的投資、專業的技術團隊和時間。選擇CDN供應商不僅為直播應用提供了即插即用的解決方案,而且提供了全球范圍內的節點,使內容可以快速、穩定地傳輸到任何地方。

CDN (Content Delivery Network) 的作用是通過在各地部署節點,使用戶可以就近取得所需的內容,而不必每次都從源服務器上拉取,從而大大提高了內容的訪問速度和效率。但是,當CDN本身出現問題,直播體驗就會受到嚴重影響。可以關注以下三個核心原因:

1. CDN 負載太高。
2. 節點覆蓋不全。
3. CDN 接入方式是單運營商還是多運營商。

如何判斷CDN供應商問題

1. 時間段對比:如果在網絡高峰期(如晚上),出現了大量的卡頓問題,而在非高峰期(如凌晨)卡頓問題顯著減少,這可能是CDN性能不足導致負載太高的原因。
2. 多地域觀察:CDN的性能可能會因地域而異。如果在某些特定地域的用戶反饋視頻卡頓問題特別嚴重,這可能意味著CDN節點覆蓋不全的原因。
3. 多網絡環境測試:如果在不同的網絡環境(例如Wi-Fi,4G,不同ISP等)下,用戶都出現了視頻卡頓的問題,那么這可能與CDN的傳輸效率有關,這可能是CDN的接入方式的原因。

經過上述的初步判斷方法,以下看也通過進一步的技術工具進行判斷CDN供應商問題。

1. 第三方測試工具:使用如WebPageTest、FastOrSlow、GTmetrix等在線工具來測試CDN供應的資源的加載速度和性能。這些工具提供了全球各地的測試點,可以從不同地理位置和網絡環境來檢測CDN的性能。使用LoadRunner、JMeter 等工具,可以模擬大量用戶訪問,看服務器在高負載情況下的表現。可以模擬大量用戶訪問,看服務器在高負載情況下的表現。

2. CDN廠商提供的監控工具:大多數CDN供應商都會提供一個控制面板或者API來讓用戶實時監控CDN的性能,如響應時間、帶寬使用、請求次數等。例即構ZEGO視頻云星圖平臺為開發者提供了實時監控系統、日志系統、網絡診斷工具。幫助開發者實時查看用戶觀看質量、記錄每次直播過程中的詳細信息、測量網絡的帶寬、延遲、丟包率等信息,可以通過這些日志找到問題的原因,這些數據可以幫助您識別可能的性能瓶頸或故障點。

解決方案:CDN供應商問題

CDN負載太高

  • 與CDN供應商合作,監控流量高峰,并根據實際流量進行擴容。
  • 使用多CDN策略。通過將流量分散到多個CDN供應商上,既可以提高冗余性,又可以減輕每個CDN的負擔。

CDN節點覆蓋不全

  • 根據業務的地理分布和用戶群體選擇CDN供應商。
  • 使用多CDN策略,確保至少有一個CDN供應商在目標地區有良好的服務。

CDN接入方式

  • 了解目標用戶主要使用哪些運營商,選擇與這些運營商關系良好的CDN供應商。如即構科技的CDN服務。
  • 與CDN供應商合作,優化接入策略,例如,建立直接的對等連接或租用更多的帶寬。

九、第三方CDN廠商

當直播或實時通訊應用出現卡頓等問題時,通常會涉及到多個原因,如網絡、設備、編碼/解碼、服務器、CDN等。為了簡化開發和排查過程,許多開發者選擇使用第三方的服務。即構科技提供了一系列的解決方案:

1. 即構RTC服務 (https://www.zego.im/product/realtime-video)
**基于低延遲、高并發、高可靠的私有協議,保障流暢的音視頻通信體驗。**支持多人會議、屏幕共享、錄制、實時消息傳輸等功能。提供實時音視頻通信,適用于多種場景,如直播、在線教育、遠程辦公等。

2. 即構CDN服務-暢直播服務(https://www.zego.im/product/livestreaming)

自研的流媒體協議,智能適應各種網絡環境,包括弱網和網絡擁堵情況。使用CDN網絡將視頻內容高效分發到全球各地,保證用戶無論身在何處都可以流暢觀看。海外CDN優化,確保全球用戶都能獲得高質量的直播體驗。提供多種直播服務,如超低延遲直播、CDN Plus直播、CDN直播,滿足不同業務需求。

在解決卡頓問題的過程中,開發者也可以考慮使用第三方的服務來簡化這個過程,而不是構建自己的服務器。

比如ZEGO即構提供的RTC(實時通信)和CDN 暢直播(內容傳遞網絡)服務就是其中之一。這些服務已經被測試和證明可以處理數百萬或數十億日活用戶和數十億分鐘的音視頻交互。

RTC 服務可以幫助開發者輕松地將實時音視頻通信集成到他們的應用程序中,提供屏幕共享、錄制和直播等功能。

CDN 服務使用一組服務器將視頻內容分發給全球用戶,減輕原始服務器的負載,提高傳遞速度和質量,并包括動態流媒體功能和防止未經授權訪問視頻內容的熱鏈接保護功能等。

選擇即構這些服務可以快速實現直播和實時通訊功能,并確保穩定、高質量的用戶體驗。同時,利用即構提供的技術支持和監控工具,開發者可以快速定位和解決出現的各種問題,保障業務的穩定運行。

10、結語

本文全面介紹了導致視頻直播卡頓問題的三個主要原因:用戶網絡帶寬不足、用戶性能不佳、CDN供應商問題。

為了幫助開發者解決這些問題,還提供了初步診斷和高級技術工具和技術,可以用來識別和解決各種問題。其中一些工具包括Ping、Traceroute和MTR等網絡診斷工具,提供實時監控和網絡診斷工具的CDN監控系統,像New Relic和Datadog這樣的第三方監控服務,客戶端日志分析,以及像LoadRunner和JMeter這樣的負載測試工具。

開發者還需關注視頻卡頓問題的一些關鍵性能指標,例如帶寬、延遲、數據包丟失、抖動和TCP重傳率。通過監測這些指標,可以更好地了解如何優化網絡帶寬和性能,確保平穩的視頻播放。

總的來說,本文為遇到視頻緩沖或卡頓問題的用戶提供了有用且實用的建議。通過按照本文中概述的指南采取積極措施,用戶可以診斷和解決這些問題,確保更流暢和愉快的視頻觀看體驗。

關于視頻卡頓的問題的排查和解決方案就介紹到這里了,在下一篇文章中,我們將深入探討“延時高”這個話題。延時高是在線游戲中常見的問題,可能會導致游戲體驗變得不流暢。我們將介紹延時高的原因和解決方案,幫助您更好地享受游戲的樂趣。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42505.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42505.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42505.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vc - Qt - 繪制窗口背景色

要在Qt中繪制一個背景顏色,你可以使用Qt的繪圖功能來完成。下面是一種簡單的方法: 步驟1:在你想要繪制背景顏色的QWidget(例如QMainWindow或QDialog)的派生類中,重寫 它的paintEvent函數。步驟2&#xff1a…

matlab中exp和expm的區別

exp()為數組 X 中的每個元素返回指數 e x e^{x} ex expm()計算 X 的矩陣指數。 兩個函數傳入矩陣后計算的結果是不同的,千萬不能混淆。之前曾經想當然得把exp里傳入矩陣當矩陣指數使用,也未驗證正確性,實不應該。

uni-app中使用pinia

目錄 Pinia 是什么? uni-app 使用Pinia main.js 中引用pinia 創建和注冊模塊 定義pinia方式 選項options方式 定義pinia 頁面中使用 pinia選項options方式 函數方式 定義pinia 頁面中使用 函數方式 定義的pinia Pinia 是什么? Pinia&#xff0…

用戶新增預測——baseline學習筆記

一、賽題理解 1. 賽題名稱 用戶新增預測挑戰賽 2. 賽題數據集 賽題數據由約62萬條訓練集、20萬條測試集數據組成,共包含13個字段。其中uuid為樣本唯一標識,eid為訪問行為ID,udmap為行為屬性,其中的key1到key9表示不同的行為屬性…

S-Video端口接口芯片ESD保護方案圖

在音/視頻領域,除了常見的HDMI、DVI接口等,還有一些冷門的接口,比如S-Video端口,相信很多人可能都沒有聽說過。S-Video視頻端口同樣擁有較好的數據傳輸功能。S-Video二分量視頻端口,英文全稱Separate Video&#xff0c…

Macbook 終端 git 命令補全和提示

Mac OS自帶的終端,用起來雖然有些不太方便,界面也不夠友好,關鍵是在windows上用習慣了自動補全功能,在Mac上一個個的拼寫單詞是真的難受,逼著我記英文單詞。 經過一天的磨合,我實在忍不了,在網上…

復習vue3,簡簡單單記錄

這里的知識是結合視頻以及其他文章一起學習,僅用于個人復習記錄 ref 和reactive ref 用于基本類型 reactive 用于引用類型 如果使用ref 傳遞對象,修改值時候需要寫為obj.value.attr 方式修改屬性值 如果使用reactive 處理對象,直接obj.att…

Lua學習記錄

Lua基礎了解 Lua的注釋通過 (-- 單行注釋,--[[ ]] 多行注釋)可以不加; 多個變量賦值,按順序賦值,沒有則為nil; function的簡單用法,多個返回值配合多重賦值,以end為結束標志 Lua下標從1開始&…

JSP-學習筆記

文章目錄 1.JSP介紹2 JSP快速入門3 JSP 腳本3.1 JSP腳本案例3.2 JSP缺點 4 EL表達式4.1 快速入門案例 5. JSTL標簽6. MVC模式和三層架構6.1 MVC6.2 三層架構 7. 案例-基于MVC和三層架構實現商品表的增刪改查 1.JSP介紹 概念 JSP(JavaServer Pages)是一種…

Azure存儲賬戶

存儲賬戶的概念 Azure存儲賬戶是Azure提供的一種云存儲解決方案,用于存儲和訪問各種類型的數據,包括文件、磁盤、隊列、表格和Blob(二進制大對象)數據。存儲賬戶可以基于訪問模式和冗余需求來選擇不同的類型,以滿足應…

【MySQL--->表的操作】

文章目錄 [TOC](文章目錄) 一、創建表二、查看表三、修改表四、刪除表drop table 表名; ![在這里插入圖片描述](https://img-blog.csdnimg.cn/15227b8335364d41bd01b4b4dd83ee55.png) 一、創建表 語句格式:create table 表名(列名 類型,…)字符集 校驗規則 存儲引擎;字符集和校…

我還不知道?Android組件化插件化模塊化

Android組件化、插件化和模塊化是針對Android應用程序開發的一種架構設計思想和開發方式。 組件化(Componentization): 組件化是將一個大型的Android應用程序拆分成多個獨立的組件(Module),每個組件可以獨…

python使用裝飾器記錄方法耗時

思路 python使用修飾器記錄方法耗時,目的是每當方法執行完后,可以記錄該方法耗時,而不需要在每個方法的執行前后,去創建一個臨時變量,來記錄耗時。 方式一(不推薦): 在每個方法的…

source insight 添加宏-文件頭加注釋

source insight 3.5 自帶的一些宏,在安裝目錄下的 utils.em 文件中,用戶也可以自己寫文件,命令為xxx.em ,然后把這個文件添加到項目中即可,添加后在菜單欄 Options -> Key Assignments 里輸入macro 就能顯示新添加的…

第一個ArkTS項目實踐-鴻蒙ArkTS

第一個ArkTS項目實踐-ArkTS 第一個ArkTS項目實踐-ArkTS自定義組件的組成配置屬性與布局配置屬性布局 改變組件狀態循環渲染列表數據代碼ToDoItem組件ToDoList頁面 效果參考資料 第一個ArkTS項目實踐-ArkTS 本篇文章是官網上視頻對ArkTS開發實踐的第一個視頻,主要是引…

Matplotlib數據可視化(三)

目錄 1.繪圖的填充 1.1 曲線下方區域的填充 1.2 填充部分區域 1.3 兩條曲線之間的區域填充 1.4 直接使用fill進行填充 1.繪圖的填充 繪圖的填充可以調用fill_between()或fill()進行填充。 1.1 曲線下方區域的填充 x np.linspace(0,1,500) y np.sin(3*np.pi*x)*np.exp…

【C語言】每日一題(找到所有數組中消失的數字)

找到所有數組中消失的數字,鏈接奉上。 這里簡單說一下,因為還沒有接觸到動態內存,數據結構,所以知識有限,也是盡力而為,結合題庫的評論區找到了適合我的解法,以后有機會,會補上各種…

如何在HTML中使用React

突發奇想 查了查真的可以,官方文檔: 在網站中添加 React – React 開始 引入js <!-- 開發環境使用 --><script src"https://unpkg.com/react18/umd/react.development.js"></script><script src"https://unpkg.com/react-dom18/umd/reac…

穿越數字奇境:探尋元宇宙中的科技奇跡

隨著科技的迅速發展&#xff0c;元宇宙正逐漸成為一個備受關注的話題&#xff0c;它不僅是虛擬現實的延伸&#xff0c;更是將現實世界與數字世界融合的未來典范。在這個神秘而充滿活力的數字奇境中&#xff0c;涉及了眾多領域和技術&#xff0c;為我們呈現出了一個無限的創新和…

創建Azure資源鎖

鎖的介紹 在Azure中&#xff0c;資源鎖是一種用于保護訂閱、資源組或者單個資源的機制。它可以防止對受鎖定的資源進行刪除或修改操作&#xff0c;幫助確保資源的連續可用性和安全性。 Azure中的資源鎖可以分為兩種類型&#xff1a; 刪除鎖&#xff08;CanNotDelete&#xf…