Python筆記-計算密集型(最好用C)、IO密集型(最好用指令碼)
計算密集型
1、特點:要進行大量的計算,消耗CPU資源。比如計算圓周率、對視訊進行高清解碼等等,全靠CPU的運算能力。
2、計算密集型任務雖然也可以用多工完成,但是任務越多,花在任務切換的時間就越多,CPU執行任務的效率就越低,所以,要最高效地利用CPU,計算密集型任務同時進行的數量應當等於CPU的核心數。
3、計算密集型任務由於主要消耗CPU資源,因此,程式碼執行效率至關重要。Python這樣的指令碼語言執行效率很低,完全不適合計算密集型任務。對於計算密集型任務,最好用C語言編寫。
IO密集型
1、涉及到網路、磁碟IO的任務都是IO密集型任務。
2、特點:CPU消耗很少,任務的大部分時間都在等待IO操作完成(因為IO的速度遠遠低於CPU和記憶體的速度)。
3、對於IO密集型任務,任務越多,CPU效率越高,但也有一個限度。常見的大部分任務都是IO密集型任務,比如Web應用。
4、IO密集型任務執行期間,99%的時間都花在IO上,花在CPU上的時間很少,因此,用執行速度極快的C語言替換用Python這樣執行速度極低的指令碼語言,完全無法提升執行效率。對於IO密集型任務,最合適的語言就是開發效率最高(程式碼量最少)的語言,指令碼語言是首選,C語言最差。
相關推薦
Python筆記-計算密集型(最好用C)、IO密集型(最好用指令碼)
計算密集型 1、特點:要進行大量的計算,消耗CPU資源。比如計算圓周率、對視訊進行高清解碼等等,全靠CPU的運算能力。 2、計算密集型任務雖然也可以用多工完成,但是任務越多,花在任務切換的時間就越多,CPU執行任務的效率就越低,所以,要最高效地利用CPU,計
Odoo10學習筆記三:模型(結構化的應用數據)、視圖(用戶界面設計)
其他 描述 用戶界面 列表 支持 字段 界面設計 允許 學習 一:模型 1:創建模型 模型屬性:模型類可以使用一些屬性來控制它們的一些行為: _name :創建odoo模型的內部標識符,必含項。 _description :當用戶界面顯示模型時,一個方便用戶的模型記錄標題。
C++筆記 第六十六課 C++中的型別識別(新內容的最後一課)---狄泰學院
如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。 學習C++編譯環境:Linux 第六十六課 C++中的型別識別(新內容的最後一課) 1.型別識別 在面向物件中可能出現下面的情況 基類指標指向子類物件 基類引用成為子類物件的別名 靜態型別-變數(物件)自
C++筆記 第六十五課 C++中的異常處理(下)---狄泰學院
如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。 學習C++編譯環境:Linux 第六十五課 C++中的異常處理(下) 1.C++中的異常處理 catch語句塊中可以丟擲異常 2.問題 為什麼要在catch中重新丟擲異常? 3.C++中的異常
C++筆記 第六十四課 C++中的異常處理(上)---狄泰學院
如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。 學習C++編譯環境:Linux 第六十四課 C++中的異常處理(上) 1.C++異常處理 C++內建了異常處理的語法元素try…catch… try語句處理正常程式碼邏輯 catch語句處理異常情況 try
用c語言實現簡易通訊錄(連結串列)
首先,這是本人第一次寫部落格。不當之處,望請見諒!(腦補一個doge) 最近在學習C語言,並實現了 下面連結中 簡易通訊錄的功能。區別是:我是用連結串列實現了其所有功能。並增加了檔案儲存模組! 本人初來乍到,c功底不是很紮實,且是第一次用c寫小專案,雖然實現了所有功能,但程式碼中定會有很多需
用C++編寫數制轉換(鏈式表)
> 程式設計小白,多多包涵 #include<iostream> #include<stack> using namespace std; typedef struct StackNode { int data; struc
用c語言折半查詢演算法(二分查詢)
二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好,佔用系統記憶體較少;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查
python筆記5-控制流條件語句和迴圈、遍歷語句(if,for,while)
1.條件語句 語法:if 條件表示式:程式碼塊 elif 條件表示式:程式碼塊 else:程式碼塊 if語句的特點,關鍵字if 滿足條件才執行下面的程式碼塊或者elif模組; 必須是以if開頭,可以沒有elif或者else,但不能沒有if
用c語言實現 一個通訊錄(實現 增加、刪除、查詢、修改、顯示、清空功能)
源程式標頭檔案contact.h #ifndef _CONTACT_H__ #define _CONTACT_H__ #define NAME_MAX 20 #define SEX_MAX 5 #define TELE_MAX 15 #define ADDR_MAX 5
python科學計算學習二:matplotlib繪圖,圖標註釋(2)
圖標註釋對於搞研究的人來說是很重要的,一般的paper裡面也都會有。所以是很有必要要學習的。 下面通過一個例子來說明python是怎麼做的。 1 import matplotlib.pyplot as plt 2 import numpy as n
用C語言擴充套件lua模組(入門)
#include <lua.h> #include <lauxlib.h> #include <lualib.h> static void encode_sha(const char* src, char* des) { /* *sha-hash /
用c#實現螢幕錄影功((成功)
using WMEncoderLib; using WMPREVIEWLib; using System.IO; WMEncoder Encoder; private void Form1_Load(object sender, System.EventAr
用C#實現將大寫日期(年/月/日)轉化為小寫日期(阿拉伯數字的)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 日期轉換 { class Program { st
用c語言實現鏈棧 (帶頭結點)
#include <cstdio> #include <iostream> #include <algorithm> #include <cstring>
Java學習筆記43(打印流、IO流工具類簡單介紹)
println comm 學習筆記 dir puts str lose tof line 打印流: 有兩個類:PrintStream,PrintWriter類,兩個類的方法一致,區別在於構造器 PrintStream:構造方法:接收File類型,接收字符串文件名,接收字節輸
用maven來創建scala和java項目代碼環境(圖文詳解)(Intellij IDEA(Ultimate版本)、Intellij IDEA(Community版本)和Scala IDEA for Eclipse皆適用)(博主推薦)
搭建 ava XML .com 自動 ado ima 強烈 mapred 為什麽要寫這篇博客? 首先,對於spark項目,強烈建議搭建,用Intellij IDEA(Ultimate版本),如果你還有另所愛好嘗試Scala IDEA for Eclipse,有時間自己去
python中np.multiply()、np.dot()和星號(*)三種乘法運算的區別
圖片 分享 png blog details 分享圖片 blank net ref https://blog.csdn.net/zenghaitao0128/article/details/78715140 總結一下: python中np.multiply()、np.
FastSocket(C/C++)、FastSocket.NET(C#)與SuperSocket(純C#) 開源庫的區別、介紹、使用方法
一、FastSocket與SuperSocket 區別 裡面包含了視訊教程。 我們到底選擇哪一款開源的Socket框架?https://blog.csdn.net/abennet/article/details/79399713 二、新浪的FastSocket介紹
Ubuntu作業系統學習筆記2(vi文字編輯器、程序的基本狀態及其轉換)
文字編輯器是對純文字檔案進行編輯、檢視、修改等操作的應用程式。vi編輯器具有文字編輯的所有功能,並且執行速度快,具有強大的編輯功能,廣泛的適用性和靈活性。 一、vi文字編輯器 1、vi編輯器的啟動與退出 (1)啟動 格式:vi [檔名] 檔名有以下情況: 未指定檔