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或者应用调用。希望能帮到你。