Hashing雜湊注意事項
Hashing雜湊注意事項
Numba支援內建功能hash(),只需__hash__()在提供的引數上呼叫成員函式即可 。這使得新增對新型別的雜湊支援變得微不足道,這是因為擴充套件APIoverload_method()裝飾器的應用程式,需要過載用於為註冊到該型別的__hash__()方法的新型別,計算雜湊值的函式。例如:
from numba.extending import overload_method
@overload_method(myType, ‘hash’)
def myType_hash_overload(obj):
# implementation details
實施
Numba雜湊函式的實現,嚴格遵循Python 3的實現。唯一的例外是,對於Unicode和位元組(內容長於sys.hash_info.cutoff)進行雜湊,唯一受支援的演算法是 siphash24(CPython 3中的預設值)。結果,預設條件下,Numba將為所有受支援的型別匹配Python 3雜湊值。
Unicode雜湊快取差異
Numba和CPython Unicode字串內部表示形式都有一個hash 成員,用於快取字串的雜湊值。總是在計算雜湊值之前檢查該成員,並且僅從快取中提供一個值就可以了,因為這樣做便宜得多。Numba Unicode字串雜湊快取實現的行為與CPython的行為類似。唯一值得注意的行為更改(其唯一影響是效能的潛在變化)是,Numba始終計算並快取在將其load,在Python中重用時建立的Unicode字串的雜湊,與CPython相比,這在某些情況下太快了。CPython可能會延遲根據建立方法對新Unicode字串進行雜湊處理的時間。還應注意,Numba在Unicode字串複製nopython modehash 的CPython內部表示形式的成員時,將其拆分成其自己的表示形式,不重新計算已經具有與之關聯的雜湊值的字串的雜湊。
PYTHONHASHSEED的Accommodation
PYTHONHASHSEED環境變數可用於後續的CPython的雜湊演算法。例如,Numba雜湊實現直接讀取CPython雜湊演算法的內部狀態,結果,在Numba的雜湊實現中,PYTHONHASHSEED複製了。
相關文章
- 11-雜湊4 Hashing - Hard Version
- @Lombok注意事項Lombok
- RandomAccessFile注意事項randomMac
- Hash,雜湊,雜湊?
- C#雜湊表的例項C#
- CSP 考前注意事項
- 電量注意事項
- 生產注意事項
- 快取注意事項快取
- 函式注意事項函式
- 七夕也要學起來,雜湊雜湊雜湊!
- TCP連線注意事項TCP
- Oracle使用*的注意事項Oracle
- VRPs 論文注意事項VR
- 部署nginx php注意事項NginxPHP
- Python——常見注意事項Python
- 使用Google Fonts注意事項Go
- 程式設計注意事項程式設計
- layer open div 注意事項
- [Android開發] 注意事項Android
- 域名選擇注意事項
- STL----vector注意事項
- 部署專案注意事項
- iOS 程式碼注意事項iOS
- Android元件化注意事項Android元件化
- java呼叫kotlin注意事項JavaKotlin
- 換工作的注意事項
- 雜湊
- 機械硬碟,使用注意事項硬碟
- SQL 語句的注意事項SQL
- 測試階段注意事項
- 域名管理注意事項有哪些?
- Guava HashMultimap使用及注意事項Guava
- 萬兆網路卡使用注意事項
- MySQL半同步使用注意事項MySql
- 伺服器租用注意事項伺服器
- 選擇SEO外包注意事項
- in App Purchases一個注意事項APP