1. intel ISA-L library 程序庫的使用
intel®-storage-acceleration-library Intel存儲加速庫,包括兩個大類:加密和非加密的。非加密的 crc,izip,erase-code,加密的包括sha512,sha256,md5,sha1等。
核心技術就是使用intel sse/avx/avx2/avx256的擴展指令,並行運算多個流的方法。單線程比openssl要快2~8倍。
現在ISA-L已經開源:
https://github.com/01org/isa-l
https://github.com/01org/isa-l_crypto
並行運算的介面有些像write/writev:
ssize_t write(int fd, const void *buf, size_t count);
ssize_t writev(int fd, const struct iovec *iov, int iovcnt);
struct iovec {
void *iov_base; /* Starting address */
size_t iov_len; /* Number of bytes to transfer */
};
實際介面:
SHA512_HASH_CTX_MGR *mgr = NULL;
SHA512_HASH_CTX ctxpool[NUM_JOBS], *ctx = NULL;
posix_memalign((void *)&mgr, 16, sizeof(SHA512_HASH_CTX_MGR));
sha512_ctx_mgr_init(mgr);
// Init contexts before first use
for (i = 0; i < MSGS; i++) {
hash_ctx_init(&ctxpool[i]);
ctxpool[i].user_data = (void *)((uint64_t) i);
}
for (i = 0; i < MSGS; i++) {
sha512_ctx_mgr_submit(mgr, &ctxpool[i], msgs[i], strlen((char *)msgs[i]), HASH_ENTIRE);
}
while (1) {
ctx = sha512_ctx_mgr_flush(mgr);
if (ctx) {
t = (unsigned long)(ctx->user_data);
}
因為有write到writev的類似的介面,所以單buffer介面到多buffer介面的轉化是必須的。
單線程環境:只有多buffer介面,不能轉化成單buffer介面
1)緩沖多個buffer。
2)submit buffers。
3)等待多個buffer結果。
程序設計成多buffer + lazy load的形式。
多線程:單buffer介面設計
1)fifo 緩沖: 多個寫buffer線程 《----》fifo 《----》多個算sha256線程。
2)promise/future 返回
介面形式: std::future<sha256_digest> cal_sha256(voiud *buf, size_t len);
使用std::atomic 生成sequence number,內部使用map管理 promise指針。
map <uint64, std::unique_ptr<std::promise<sha256_digest>>>
2. library的意思
library的意思為:圖書館;藏書樓。
例句:
1、-booksisdebatable.
下載圖書館電子書的方便性值得商榷。
2、Thecompany's411:.
公司業務:數字文檔庫和圖書訂閱服務
3、Britishlibraryvaluation20000.
大英圖書館估價20000英鎊。
4、.
主館中有兩大主要的藏書區。
5、.
我大部分閱讀都是從線上書庫中完成的。
3. android中library什麼用
問得不太詳細。
用eclipse開發的話,在工程右擊-properties-Android最下面,有個Is library,選擇後-apply確定,就是將此工程公開可以給別的工程使用,比如別的工程通過同樣的步驟,在Is library旁邊有個add按鈕,點擊後就可以將剛才選擇了Is library的工程添加進來。那麼你就可以在gen文件夾下面看到出現了一個新的包名,新的R文件,就是你選擇Is library的包名以及R文件,你就可以通過使用那個共享工程的資源了。這個一般會使用在可以換膚的項目中或者是項目蠻大,有個工程專門用來存放資源,別的有4-5個工程都可以使用此共享資源。
另外一種就相當於鏈接庫了:
可以鏈接jar包文件,工程右擊-properties-java Build Path-Libraries-Add JARs/Add library可以導入jar包供程序使用。
也可以鏈接.so文件,這個需要用jni技術,安裝cygwin,寫C或者C++代碼,編譯成so文件,讓java可以調用到,具體步驟可以網路上查找,不難。
4. java eclipse中library是什麼意思,怎麽用,添加有什麼用
當你一個項目,想做成公共的庫就使用library
這樣,其它的項目想使用這個公共庫的東西,直接引用進去就可以了
因為有些項目它有自己的結構,例如web 項目,android項目,都有自己的程序結構,
並不能打一個jar包
這時候其它項目想要用的話,就只能將它以library形式用進去
最後編譯成一個項目
5. 庫供程序是指什麼
程序庫(library),一個可供使用的各種標准程序、子程序、文件以及它們的目錄等信息的有序集合。 匯集在一起的經常應用的程序。主要有:(1)標准子程序。如三角函數、反三角函數等子程序。(2)標准程序。實現一些常用的計算方法,如解常微分方程、偏微害場憤渡蒞盜縫醛俯互分方程、數值積分等程序。(3)服務性程序。如復制卡片、磁帶、磁碟及調試用的各種程序等。程序庫中的程序都是規范化的。所謂規范化有三重含義:① 同一庫里所有程序的格式是統一的;② 對這些程序的調用方法是相同的;③ 每個程序所需參數的數目、順序和類型都是嚴格規定好的
6. Library有什麼用呀,希望能回
Dokan Library 幫助程序員在windows系統下輕松建立用戶級文件系統,不需要寫設備驅動,其與FUSE(Linux user mode file system)類似。常見的場合貌似在游戲《坦克世界》的插件安裝里。
7. android中Library層起什麼作用
Library層就是通常的庫層(靜態庫和動態庫),在庫中你可以實現自己的演算法(不和底層打交道),也是實現訪問底層的介面,從而供framework或者應用調用。希望能幫到你。