首页
学习
活动
专区
工具
TVP
发布

方亮

无聊时玩的各种技术
专栏作者
341
文章
348216
阅读量
35
订阅数
IT项目研发过程中的利器——用Top分析CPU利用率
top是linux程序员经常使用的分析机器运行状态的工具。但是并不是所有人都能清楚如何使用该工具对程序占用CPU资源的情况进行分析,比如图中us、sy、ni、id、wa和si等各是什么意思?高低都能说明什么问题?本文将抛砖引玉,讲解下该工具的使用。
方亮
2024-03-19
60
IT项目研发过程中的利器——C/C++项目调用图篇
当我们拿到一个比较大的项目源码时,往往需要总览代码的结构,理清脉络,发现核心点。如果没有前人给出的经验,我们该如何找到关键的函数和模块呢?这个时候我们就可以借助一些工具来生成“调用图”(Call Graph)。图中函数和模块的连线比较多,说明其被使用的很多,需要重点关注;图中函数和模块位于很多调用栈中,说明该函数是有关“脉络”的信息,也要重点关注。
方亮
2024-03-19
80
动态分析C语言代码生成函数调用关系的利器——perf
perf工具集并不默认安装在系统中,需要进行安装。(找到你系统匹配的版本,我的是linux-tools-5.15.0-91-generic)
方亮
2024-03-19
60
动态分析C语言代码生成函数调用关系的利器——gprof
gprof是一个C语言程序性能分析工具。在编译期间,我们给编译指令增加-pg选项,就可以将检测代码插入到源码中。然后使用gprof启动编译程序,它会收集程序运行的流程以及其他相关数据。最后我们使用gprof2dot将这些数据转换成dot文件,使用graphviz进行图形化展示。
方亮
2024-03-19
80
一个通过下标查找数值的面试题解法
最近看到一道面试题,面试官说是算法题。我粗略看了下,努力在其中寻找数学公式,但是最后发现它算是一个数据结构相关的题目,没有算法层面的知识。
方亮
2024-03-19
70
静态分析Golang语言生成函数调用关系的利器——go-callvis
不同于之前分析C语言项目的工具,go-callvis还是很方便使用。只要把两项工作做好就能顺利的使用。
方亮
2024-03-19
30
使用软件工程理论给代码打分的利器——Analizo
这些评分是我们评价代码质量和可维护性的一种依据。 比如Average Cyclomatic Complexity per Method (ACCM) metric,即平均圈复杂度。这是1976年由Thomas J. McCabe, Sr. 提出来的一种代码复杂度的衡量标准。它的算法也很简单,即
方亮
2024-03-19
110
静态分析C语言生成函数调用关系的利器——GCC
在《静态分析C语言生成函数调用关系的利器——cally和egypt》中我们介绍了如何使用GCC生成RTL文件,然后再借助cally和egypt来分析出调用关系的方法。GCC自身有命令可以生成代码内部的调用关系,即-fcallgraph-info参数。
方亮
2024-03-19
50
静态分析C语言生成函数调用关系的利器——cally和egypt
在《静态分析C语言生成函数调用关系的利器——cflow》和《静态分析C语言生成函数调用关系的利器——cflow(二)》中,我们介绍了使用cflow直接分析c语言源码导出调用栈的方法。在做实验的过程中,我一直在思考一个问题:cflow能解释C语言?看了下源码后,发现它的确有解析的模块。大家可以看下它的部分代码。
方亮
2024-03-19
120
静态分析C语言生成函数调用关系的利器——cflow(二)
我们可以直接使用apt安装cflow。graphviz则是用于在最后一步将dot文件转换成图片,我们先提前将其安装好。
方亮
2024-03-19
120
一个处理Range List的面试题解法
这题大体的意思是:设计一个RangeList类,它保存了一批左闭右开的区间。它支持add操作,可以新增一个包含区间,但是可能会影响之前的区间,比如之前的区间是:[3,5) [7,9),新增区间[5,7)之后,区间就变成[3,9);它还支持remove操作,可以删除一个区间,也可能影响之前的区间,比如之前的区间是[3,9),删除[5,7)之后,变成[3,5) [7,9)。
方亮
2024-03-19
160
Windows11家庭版上安装Hyper-V并导入虚拟机的方法
重启电脑后进入“启用或关闭Windows功能”,勾选Hyper-V。然后点击“确定”,待准备好后,重启系统。
方亮
2024-03-19
80
使用scipy处理图片——滤镜处理
对应的percentile和size(ndimage.percentile_filter第二、三个参数)的值
方亮
2024-01-18
1140
使用scipy处理图片——滚动图片
在《使用numpy处理图片——滚动图片》一文中,我们介绍了numpy的roll方法,它只能让超出区域的元素回到被移动的区域中,如下图。
方亮
2024-01-17
660
使用numpy处理图片——滚动图片
滚动图片是指:图片尺寸不变的情况下,把图片内容做某个方向的移动。这样就会出现一种情况:被移走的区域显示为空白,或者被超出尺寸的区域填充。
方亮
2024-01-17
770
使用scipy处理图片——任意比例缩放
在《使用numpy处理图片——缩放图片》一文中,我们每2个取1个像素来达到图像缩小的效果。这就要求缩小的比例只能是整数倍,而不能支持缩小到0.3倍或者放大到1.5倍这样的效果。 为了支持任意倍数的缩放功能,我们需要使用scipy的zoom方法。 先看下原图
方亮
2024-01-16
760
使用scipy处理图片——旋转任意角度
在《使用numpy处理图片——90度旋转》中,我们使用numpy提供的方法,可以将矩阵旋转90度。而如果我们需要旋转任意角度,则需要自己撸很多代码。如果我们使用scipy库提供的方法,则会容易很多。 需要注意的是,旋转导致原始的图片会“撑开”修改后的图片大小。当然我们也可以通过参数设置,让图片大小不变,但是会让部分图片显示不出来。
方亮
2024-01-15
960
使用numpy处理图片——二值图像
在《使用numpy处理图片——灰阶影像》一文中,我们将彩色图片转换成灰阶图片。本文将在这个基础上将灰阶图片转换成二值图像。 二值图像就是只有黑白两种颜色的图像。像素最终显示黑还是白,需要有一个判断标准。如果图片太白了,或者太黑了,会让图片丢失很多信息。于是我们需要找到一个平衡。
方亮
2024-01-15
1100
使用numpy处理图片——灰阶影像
基本算法就是对每个像素点的RGB值取最大和最小值的均值,即(Max(RGB)+Min(RGB))/2。
方亮
2024-01-14
920
使用numpy处理图片——分离通道
在《使用numpy处理图片——滤镜》中,我们剥离了RGB中的一个颜色,达到一种滤镜的效果。 如果我们只保留一种元素,就可以做到PS中分离通道的效果。
方亮
2024-01-14
1190
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
热点技术征文第五期
新风口Sora来袭,普通人该如何把握机会?
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档