当前位置: 首页 > news >正文

网站建设服务开税率多少的票思而忧网站

网站建设服务开税率多少的票,思而忧网站,有什么做美食的视频网站,网站的颜色目录 4.1手动实现多核base16编码4.1.1 实现base16编码4.1.2无多线程代码4.1.3 C 11多线程代码4.1.4 C 17多线程并发4.1.5 所有测试代码汇总 4.1手动实现多核base16编码 4.1.1 实现base16编码 二进制转换为字符串 一个字节8位#xff0c;拆分为两个4位字节#xff08;最大值… 目录 4.1手动实现多核base16编码4.1.1 实现base16编码4.1.2无多线程代码4.1.3 C 11多线程代码4.1.4 C 17多线程并发4.1.5 所有测试代码汇总 4.1手动实现多核base16编码 4.1.1 实现base16编码 二进制转换为字符串 一个字节8位拆分为两个4位字节最大值16 拆分后的字节映射到0123456789abcdef 4.1.2无多线程代码 #include thread #includeiostream #includefuture #include string #include vector #include chrono//计时头C11using namespace std; using namespace chrono;static const char base16[] 0123456789abcdef; void Base16Encode(const unsigned char* data, int size, unsigned char* out) {for (int i 0; i size; i){unsigned char d data[i];//0000 0000//1234 5678 4 0000 1234 移位操作//1234 5678 0000 1111 0000 5678char a base16[d 4];//取出高位char b base16[d 0x0F];//取出低位out[i * 2] a;out[i * 21] b;} }int main() {//使用字符串进行16位编码测试string test_data 测试base16编码;printf(test_data size%d\n, test_data.size());//一个中文占用2个字节一个英文占用1个字节如果要解码出来包含中文和英文有点难度unsigned char* out new unsigned char[test_data.size()*21];Base16Encode((unsigned char*)test_data.data(), test_data.size(), out);//编码out[test_data.size()*2] \0;//字符串\0结尾否则后面总有乱码cout base16: out endl;//测试单线程base16编码效率{vectorunsigned charin_data;in_data.resize(1024 * 1024 * 20);// 1024*1024*10 - 10M 测试数据for (int i 0; i in_data.size(); i){//初始化里面数据in_data[i] i % 256;}vectorunsigned charout_data;out_data.resize(in_data.size()*2);//是输入数据2倍auto start system_clock::now();//计时开始Base16Encode(in_data.data(), in_data.size(),out_data.data());auto end system_clock::now();//计时结束auto duration duration_castmilliseconds(end-start);//模板函数转换到毫秒cout 编码 in_data.size() 字节数据花费 duration.count() 毫秒 endl;//cout out_data.data() endl;}printf(All done!\n);getchar();return 0; }4.1.3 C 11多线程代码 //C11多线程 void Base16EncodeThread(const vectorunsigned chardata, vectorunsigned char out) {long size data.size();int th_count thread::hardware_concurrency();//系统支持的线程核心数printf(CPU report thread count:%d\n,th_count);//对原始数据进行切片long slice_count size / th_count;//余数丢弃了余数后续单独处理if (size th_count){//只切一片th_count 1;//1个线程搞定slice_count size;}vectorthread ths;//准备好线程ths.resize(th_count);//任务分配到各个线程 for (int i 0; i th_count; i){//eg. 1234 5678 9abc defg hi//计算偏移位置long offset i * slice_count;long count slice_count;//最后一个线程要把余数加起来一起处理if (th_count 1 i th_count - 1){count slice_count size%th_count;}//cout offset : count endl;ths[i] thread(Base16Encode, data.data() offset,count, out.data());}//等待所有线程处理结束for (auto th : ths){th.join();} } 4.1.4 C 17多线程并发 printf(C17多线程Base16编码效率测试(编译的时候先检查设置C17) 开始计算\n);//设置C17方法属性-C/C -C语言标准 设置ISOC17vectorunsigned charin_data;in_data.resize(TestNumber);// 1024*1024*10 - 10M 测试数据for (int i 0; i in_data.size(); i){//初始化里面数据in_data[i] i % 256;}vectorunsigned charout_data;out_data.resize(in_data.size() * 2);//是输入数据2倍auto start system_clock::now();//计时开始//#include execution //C17 支持std::for_each(std::execution::par,//并行计算 多核in_data.begin(),in_data.end(),[](auto d)//多线程进入此函数{char a base16[(d 4)];char b base16[(d 0x0F)];int index d - in_data.data();out_data[index * 2] a;out_data[index * 2 1] b;});auto end system_clock::now();//计时结束auto duration duration_castmilliseconds(end - start);//模板函数转换到毫秒cout C17多线程 编码 in_data.size() 字节数据花费 duration.count() 毫秒 endl;4.1.5 所有测试代码汇总 #include thread #includeiostream #includefuture #include string #include vector #include chrono//计时头C11#include execution //C17 for_eachusing namespace std; using namespace chrono;static const char base16[] 0123456789abcdef; void Base16Encode(const unsigned char* data, long size, unsigned char* out) {for (int i 0; i size; i){unsigned char d data[i];//0000 0000//1234 5678 4 0000 1234 移位操作//1234 5678 0000 1111 0000 5678char a base16[d 4];//取出高位char b base16[d 0x0F];//取出低位out[i * 2] a;out[i * 21] b;} }//C11多线程 void Base16EncodeThread(const vectorunsigned chardata, vectorunsigned char out) {long size data.size();int th_count thread::hardware_concurrency();//系统支持的线程核心数printf(CPU report thread count:%d\n,th_count);//对原始数据进行切片long slice_count size / th_count;//余数丢弃了余数后续单独处理if (size th_count){//只切一片th_count 1;//1个线程搞定slice_count size;}vectorthread ths;//准备好线程ths.resize(th_count);//任务分配到各个线程 for (int i 0; i th_count; i){//eg. 1234 5678 9abc defg hi//计算偏移位置long offset i * slice_count;long count slice_count;//最后一个线程要把余数加起来一起处理if (th_count 1 i th_count - 1){count slice_count size%th_count;}//cout offset : count endl;ths[i] thread(Base16Encode, data.data() offset,count, out.data());}//等待所有线程处理结束for (auto th : ths){th.join();} }int main() {int TestNumber 1024 * 1024 * 20 - 1; //1024 * 1024 * 10 - 10M 测试数据大小//使用字符串进行16位编码测试string test_data 测试base16编码;printf(test_data size%d\n, test_data.size());//一个中文占用2个字节一个英文占用1个字节如果要解码出来包含中文和英文有点难度unsigned char* out new unsigned char[test_data.size()*21];Base16Encode((unsigned char*)test_data.data(), test_data.size(), out);//编码out[test_data.size()*2] \0;cout base16: out endl;//测试单线程base16编码效率{printf(单线程Base16编码效率测试 开始计算\n);vectorunsigned charin_data;in_data.resize(TestNumber);// 1024*1024*10 - 10M 测试数据for (int i 0; i in_data.size(); i){//初始化里面数据in_data[i] i % 256;}vectorunsigned charout_data;out_data.resize(in_data.size()*2);//是输入数据2倍auto start system_clock::now();//计时开始Base16Encode(in_data.data(), in_data.size(),out_data.data());auto end system_clock::now();//计时结束auto duration duration_castmilliseconds(end-start);//模板函数转换到毫秒cout 编码 in_data.size() 字节数据花费 duration.count() 毫秒 endl;//cout out_data.data() endl;//预览编码后的文本}//测试C11多线程base16编码效率{printf(C11多线程Base16编码效率测试 开始计算\n);vectorunsigned charin_data;in_data.resize(TestNumber);// 1024*1024*10 - 10M 测试数据for (int i 0; i in_data.size(); i){//初始化里面数据in_data[i] i % 256;}vectorunsigned charout_data;out_data.resize(in_data.size() * 2);//是输入数据2倍auto start system_clock::now();//计时开始Base16EncodeThread(in_data, out_data);//多线程auto end system_clock::now();//计时结束auto duration duration_castmilliseconds(end - start);//模板函数转换到毫秒cout C11多线程 编码 in_data.size() 字节数据花费 duration.count() 毫秒 endl;//cout out_data.data() endl;//预览编码后的文本}//测试C11多线程base16编码效率{printf(C17多线程Base16编码效率测试(编译的时候先检查设置C17) 开始计算\n);//设置C17方法属性-C/C -C语言标准 设置ISOC17vectorunsigned charin_data;in_data.resize(TestNumber);// 1024*1024*10 - 10M 测试数据for (int i 0; i in_data.size(); i){//初始化里面数据in_data[i] i % 256;}vectorunsigned charout_data;out_data.resize(in_data.size() * 2);//是输入数据2倍auto start system_clock::now();//计时开始//#include execution //C17 支持std::for_each(std::execution::par,//并行计算 多核in_data.begin(),in_data.end(),[](auto d)//多线程进入此函数{char a base16[(d 4)];char b base16[(d 0x0F)];int index d - in_data.data();out_data[index * 2] a;out_data[index * 2 1] b;});auto end system_clock::now();//计时结束auto duration duration_castmilliseconds(end - start);//模板函数转换到毫秒cout C17多线程 编码 in_data.size() 字节数据花费 duration.count() 毫秒 endl;//cout out_data.data() endl;//预览编码后的文本}printf(All done!\n);getchar();return 0; }分析 release版本优化的比较多之所以C17耗时较长原因是进入多线程次数远远大于C11,C11只进入了12次而C17采用lambda表达式函数进入了TestNumber次
http://www.w-s-a.com/news/138600/

相关文章:

  • 青岛建设官方网站南宁制作企业网站
  • 校园网站建设管理工作制度大网站开发费用
  • 做logo赚钱的网站分类网站 模板
  • 网站建设完成报告织梦网站怎么做备份
  • 邯郸市城乡建设管理局网站vimwiki wordpress
  • 如何修改wordpress站名如何制作公司网站
  • 宁波网站建设与推广方案网站有了备案号之后能做什么
  • 汕头手机端建站模板pinterest app下载
  • 网站主机免费宁波网站建设优化诊断
  • 吧网站做软件的软件下载简单的ui界面制作
  • 陕西网站制作公司网页制作与设计代码
  • 做网站行情郑州微信网站开发
  • 河间网站建设制作null wordpress theme
  • h5网站制作网站开发网站建设文翻译工作
  • 网站建设 税种秦皇岛哪有网站优化公司
  • 专业开发网站设计找人做网页需要多少钱
  • 手机购物网站 建站网站建设网站制作网站设计
  • 基于iview的网站开发模板小程序制作需要什么语言
  • 精美网站设计保定建行网站首页登录
  • 网站建设常见问题做网站保存什么格式最好
  • 营销型网站建设与网页设计网站建设 amp 找VX cp5173
  • 新网站该如何做网站优化呢儿童手工
  • 湖北现代城市建设集团网站搜索引擎优化的作用
  • 上海做网站吧开一家软件开发公司需要什么
  • 阿里巴巴网站建设改图片建设厅官方网站河南
  • 邓砚谷电子商务网站建设镇江网
  • 网站空间支持什么程序工作服款式
  • 网站单页品牌网站建设 蝌蚪5小
  • 怎么做外贸网站需注意哪些做电脑系统的网站
  • 网站建设介绍推广用语河南网站优化外包服务