技术标签: python java ubuntu linux 大数据
点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~ 文章首发 公众号—— Pou光明
公众号还在维护,大家莫慌~
Linux Qt 平台为例测试
编译总量 = 编译速度 * 编译时间
按照上面等式进行优化,则:
在编译总量不变的前提下,要减少编译时间,则可提升编译速度;
或在编译速度不变的情况下,较少编译总量;
再或者既减少编译总量又提高编译速度。
C/C++编译特点
C/C++ 编译单位是文件,无法进行跨模块优化,C++20可支持。
将.o文件链接在一起时很难并行。
预处理过程可并行进行。
提高编译速度
1 减小编译总量
包含大量头文件会导致预处理时间变长,针对此尽量使用前置声明。
Pimpl(Private Implementation)模式与不透明指针。
高内聚、低耦合,减少模块间的依赖。
删除不必要的头文件。
2 提高编译速度
在提升编译速度上,可以增加编译机器数量或者提高单机编译能力。针对整体工程。
2.1 提高单机编译能力
多核编译
make -j*
#减少重复编译相同代码的时间
ccache
解决IO瓶颈,充分利用内存资源,头文件非常多,预处理时需要反复从磁盘读取文件
tmpfs
2.2 使用多机进行
distcc :分布式编译,利用多台计算机资源共同编译一个程序,
可用于内核或者大型程序(**未做测试**),简单讲链接过程在主机进行。
icecc : distcc升级版
Qt多核编译与ccache使用具体操作流程
1 Qt 设置多核编译
Qt侧边栏 Projects -> Build -> Build Steps
注意虚拟机配置核数。
2 ccache 安装及配置步骤
2.1 ccache安装
sudo apt-get install ccache
ccache -V 可查看是否安装成功
安装完成后默认缓存路径为~/.ccache ,默认缓存空间配置为5G
2.2 Qt中配置ccache
#Qt pro中添加
equals(COMPILE,2){
QMAKE_CXX = ccache g++
}
需在Qt->Projects->Build Steps->Additionals arguments 配置变量,如图
注:使用软链接、配置环境变量等方式无法完成Qt自动使用ccache,qmake生成的Makefile中未使用ccache.
Qt使用分布式编译icecc具体操作流程
1 Qt 设置多核编译,设置如上
2.1 1icecc 及gui工具安装
sudo apt-get install icecc
sudo apt install icecc-monitor#在终端使用icemon命令进行查看
#开机后icecc-scheduler(调度器)可自动启动,如未启动,可使用systemctl start icecc-scheduler命令启动
一个调度器,两个编译机图示。
2.2 icecc 相关设置
如果在ui工具中无法搜索到调度机与客户机,可使用下面命令查看防火墙状态。如果状态为inactive,则无需进行其他设置。
sudo ufw status# Status: inactive
如果状态为active,则需添加相关端口。
sudo ufw allow 10245/tcp #添加TCP/10245端口
TCP/10245 on the daemon computers (required)
TCP/8765 for the the scheduler computer (required)
TCP/8766 for the telnet interface to the scheduler (optional)
UDP/8765 for broadcast to find the scheduler (optional)
3 Qt中使用icecc
#Qt pro中添加
equals(COMPILE,2){
QMAKE_CXX = icecc g++
}
Qt使用icecc及ccache
Qt pro中添加
equals(COMPILE,2){
QMAKE_CXX = icecc ccache g++
}
icecc不同电脑间组成局域网
1 虚拟机开发环境相关设置(VMWare为例)
1.1 查看windows无线网卡
ipconfig /all
无线局域网适配器 描述 如 Intel(R) Wi-Fi 6 AX200 160MHz
1.2 设置VMWare Vmnet信息
编辑->虚拟网络编辑器->更改设置->设置桥接模式->已桥接至选择第一步windows无线网卡信息
1.3设置虚拟机网络适配器为桥接模式
1.4关闭Windows无线网络使用的防火墙
1.5 重启电脑
1.6测试效果
2 ubuntu开发环境相关设置
连接无线即可.
测试效果
3 使用效果总结
尽可能提高编译主机核数以增加Active jobs
各个编译机调度受网速影响
文章浏览阅读8.7k次,点赞3次,收藏17次。达梦数据库常用功能及命令记录达梦数据库语句的使用总体来说跟oracle很接近的,这篇文章主要是把常用的情况和语句做了记录,并且后续还会不断的持续更新达梦数据库常用说明1.测试查询语句:select 1;select top 2 from v$dm_ini; select from v$dm_ini limit 2;select * from v$dm_ini where rownum&l..._达梦数据库存储不等于写法
文章浏览阅读3.1w次,点赞30次,收藏205次。一、最常用的快捷键【Ctrl+N】新建源代码;【Ctrl+O】打开工程或文件;【Ctrl+S】保存;【Ctrl+F9】编译程序; 【Ctrl+F10】运行; 【F9】编译并运行;【F8】调试程序; 【Ctrl+w】查看变量; 【Ctrl+Alt+F2】终止程序;【Ctrl+.】注释;【Ctrl+M】取消注释;【Ctrl+鼠标滚轮】放大缩小字体大小;代码补全功能:Dev-C++具有代码补..._devc++快捷键
文章浏览阅读1.2w次,点赞11次,收藏94次。cfg参数net层[net]batch=96 # 每次iteration训练的时候,输入的图片数量subdivisions=48 # 将每一次的batch数量,分成subdivision对应数字的份数,一份一份的跑完后,在一起打包算作完成一次iterationwidth=512 # width=height,大小为32的倍数momentum=0.9 # 动量,影响梯度下降到最优的速度,一般默认0.9decay=0.0005 # 权重衰减正则系数,防止过拟合angle=0 # 旋转角度,生成更_yolov4参数设置
文章浏览阅读2.5k次。参考 https://forum.image.sc/t/opening-large-tif/4133利用Fiji带有的Bio-Formats 插件导出Tiff格式文件_imagej 4gb
文章浏览阅读8.7k次。data = pd.DataFrame({"A": [True, False, True], "B": [1.1, 2.2, 3.33], "C": ["c1", "c2", "c3"] })print("data : \n", data.
文章浏览阅读1.9k次。gzx_dropdown_menu是一个Flutter自定义功能强大的轻量级下拉筛选菜单Package,它支持iOS和Android。_gzx_dropdown_menu
文章浏览阅读1.8k次,点赞5次,收藏11次。一、参考资料virtualenvvirtualenv简单使用virtualenv的介绍及基本使用(所有命令解释)二、相关介绍irtualenv通过创建一个虚拟化的python运行环境,将我们所需的依赖安装进去的,便于不同的项目在同一台机器上开发运行,不同项目之间相互不干扰,即在一台机器上创建多个独立的python运行环境。如下所示:使用 VirtualEnv 的理由:隔离项目之间的第三方包依赖,如A项目依赖django1.2.5,B项目依赖django1.3。为部署应用提供方便,把开发环_virtualenv使用
文章浏览阅读180次。XSLT 元素Previous Page Next Page 元素用于放置针对 XML 文件内容的条件测试。 元素如需放置针对 XML 文件内容的条件测试,请向 XSL 文档添加 元素。语法 ... ...如果条件成立则输出... ...在何处放置 元素如需添加有条件的测试,请在 XSL 文件中的 元素内部添加 元素:..._xslt if 包含
文章浏览阅读118次。BZOJ2648: SJY摆棋子题目大意二维平面内,支持插入点和查询最近点(曼哈顿距离)K-D Tree的模板题插入很暴力就不讲了查询时,$ans$为全局变量,先用该点位置与更新$ans$,算出与左右子树矩阵的曼哈顿距离如果$ans$$<$子树距离则不下移了$dl$表与左子树距离,$dr$表与右子树距离,这里有一个很巧妙的剪枝 if(dl&l...
文章浏览阅读224次。24个节气之美,每一个都如诗如画!提交我的留言加载中已留言 24个节气之美,每一个都如诗如画! 【立春】河南白马寺春是希望,念诵梵音祈愿新年平安快乐【雨水】苏州山塘街春风遍吹送来湿润的空气,和氤氲雾霭【惊蛰】江西婺源春雷初鸣,万象更新明媚的春光很多情【春分】浙江乌镇万物复苏的气息让人莫名的,脸红心跳【清明..._二十四节气如诗如画
文章浏览阅读376次。linux系统及编程基础习题答案 第 1 章 Linux 基础及安装 1. 什么是 Linux ? Linux 是一款优秀的计算机操作系统,支持多用户、多进程、多线程,实时性好,功能强大且稳定。 同时,它又具有良好的兼容性和可移植性,被广泛应用于各种计算机平台上。作为 Internet 的产物, Linux 操作系统由全世界的许多计算机爱好者共同合作开发,是一个自由的操作系统。 2. Linux ..._linux编程基础黑马程序员课后答案
文章浏览阅读1.7w次,点赞29次,收藏174次。图像1、模拟图像模拟图像,又称连续图像,是指在二维坐标系中连续变化的图像,即图像的像点是无限稠密的,同时具有灰度值(即图像从暗到亮的变化值)。2、数字图像数字图像,又称数码图像或数位图像,是二维图像用有限数字数值像素的表示。数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用数字计算机或数字电路存储和处理的图像。通常的二维数字图像是一个矩阵,可以用一个二维数组 f(x,y) 来表示,其中 x,y 是二维空间中的某坐标系的坐标,f(x,y) 表示图像在该点处的灰度值等性质。3、颜_图像处理理论基础