程序员与哲学家
文章平均质量分 89
三川小哥 知乎
我是一名IT工程师,现从事CNN模型精简优化和移动端部署的工作。硕士毕业于华科,业余喜欢看书画画。
展开
-
15分钟搞定Linux三剑客 grep sed awk
剑客grep来者何人grep是linux上的字符串搜索匹配命令。这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能。基本技能搜索字符串比如我们想在一个有10万条信息的文本中找到Zhang3的信息:$ cat students.txtname age phone addressLiSi 18 10086 BeijingZhang3 19 10001 Sichuan原创 2021-01-17 17:05:47 · 307 阅读 · 0 评论 -
采用命令行控制有什么优势呢?
大多数人第一次看到命令行控制都会有点抵触,心想:“这玩意怎么可能有界面软件好用呢?命令都想不起来啊”。语言障碍是使用命令行操作的最大门槛,这仅仅是因为我们是中国人。如果对于英语熟练的人,用命令行操作就像是在和 电脑聊天一样:把包含的文件列出来,ls切换到 cd ...可以看到,从一个脑子里的想法到实际行为,就是把你要做的事表达出来,终端操作最大的优势就在于:他是对想法的直接表达。而界面操作呢,我们要先用眼睛找到具体的按钮,然后再用手控制鼠标精确的点击那里。当你在不同的界面之间切换时,大脑要缓.原创 2020-12-28 16:32:32 · 1676 阅读 · 0 评论 -
程序员之歌 Coder‘s song
a coder code, keyboard duang duang onwrite the code whole day long.don’t know who, need these code to,don’t know where,will these code go,where it deploy,who’ll it used by.A coder just to, write them line line upon,with the clock round by round.原创 2020-12-22 15:00:10 · 257 阅读 · 0 评论 -
Neon 在多线程中怎么用呢?
遇到了一个问题,我用多线程加速了一个for循环结构后,再想用Neon加速,发现Neon加速前后无效果。问题来了,Arm上的Neon单元在多线程中还有效果吗?我先假设是Neon无法用在多线程中,我只要证明【MCEC】:1. Neon是多核CPU共享的区域,每个核都会独占Neon,否则就得交换内存浪费时间,证明:查资料:Piaaa 打脸图上清清楚楚写着,每个CPU核上都有一个Neon单元。结论:命题为假,Arm Neon可以在多线程中应用。那为什么会加速后没效果呢?效果是指速度提升,没效果原创 2020-11-20 13:21:11 · 779 阅读 · 0 评论 -
Arm Neon 在线仿真工具! 良心之作啊
新手学习ARM Neon指令集优化时,遇到的最大的困难就是,无法直观看到每个指令的操作结果。如果能有一个工具,把输入的指令产生的结果直接显示出来,那简直快乐至极。翻遍了各个网站,终于在一个犄角旮旯找到了一个Neon仿真器,没错,就是我要的“滑板鞋”这个工具是一个在线工具,不用注册不用下载,打开就能用,【良心之作啊】珍贵的网址在这里:https://szeged.github.io/nevada/使用手册在这里:https://szeged.github.io/nevada/help/manual.h原创 2020-10-29 15:01:15 · 1460 阅读 · 0 评论 -
Neon指令集优化快速入门教程
文章目录Neon是什么?Neon为什么速度快Neon基础概念运算和缓存名词收罗Neon是什么?Neon是一个商标名称,指的是Arm对Advanced SIMD Architecture的实现。SIMD代表单指令多数据。由于SIMD指令比等效的SISD(单指令单数据)指令可执行更多的操作,因此使用SIMD指令的程序平均每条指令可以处理更多数据。Neon为什么速度快Neon有32个128bit寄存器,能够输入多行的数据同时操作。Neon基于SIMD,一条指令操作多个数据,对多个数据项同时执行相同的操作原创 2020-10-27 11:31:20 · 3695 阅读 · 4 评论 -
不同数据结构的效率
文章目录1. 变量存储方式栈内存全局静态存储寄存器存储Volatile /ˈvɑːlətl/ 挥发性变量线程局部变量动态内存申请类内部声明的变量2 整数变量和操作有符号和无符号整数转换整数操作简单操作自增自减操作3布尔布尔运算4指针与引用智能指针5 类型转换1. 变量存储方式栈内存函数返回地址,函数参数,函数内部声明的变量或对象,存储在栈中。如果这些数据中没有大的数组,栈内存是在Level-1缓存中的。全局静态存储存放在静态内存中,全局变量,静态变量,字符串常量,浮点常量,数组初始化变量,数组初始原创 2020-10-27 11:08:59 · 893 阅读 · 0 评论 -
这些技巧让c语言运行速度如飞
文章目录1. 使用查找表代替分支结构2. 简化边界检查判断条件3 使用位运算优化一些语句用 & 判断多个条件:4 简化整数乘法5 整数除法6 浮点数的除法7 不要混合使用float和double1. 使用查找表代替分支结构对于运算结果是有限可能的,设置查找表,特别是在循环体内,避免重复计算:例如,整数的阶乘,在整数的有效范围内,只有如下可能:const int FactorialTable[13] = {1, 1, 2, 6, 24, 120, 720, 5040, 4032原创 2020-10-27 10:56:40 · 1490 阅读 · 0 评论 -
动态库与静态库的对比
静态库 动态库 加载方式 链接器从静态库中提取所需的函数复制到可执行文件中,最后只要可执行文件既可以运行。 动态库中的链接在加载和运行时才会解析,所以可执行文件中不包括静态库中的函数,需要一起交给用户才能执行。 内存占用 可执行文件只从静态库中提取所需的部分。 需要全部加载到内存中。 文件数量...原创 2020-10-27 10:39:14 · 119 阅读 · 0 评论 -
大话分析性思维的发展
啊哈!领导年少有为,意气风发,创业三年,员工数人。领导说:写个加法函数,算算存款。我嗖嗖嗖三行代码?领导说:写个加减乘除计算器,想给儿子批改作业。我稍微一想,四个函数,蹭蹭蹭搞定。领导说:写个常用运算的计算器,包括指数、开方、对数,想卖给小学做工具。我想了想,不好弄,得画个关系图,用了一周时间,重构了一两次,搞定啦。领导说:写个科学计算器,包括多项式,分式,和一元未知数求解,我要退出一个计算器产品。我:啊,咋弄呢,在现有代码上添加功能,一个月后,代码瞬崩,重新构建,毫无头绪。最后实在没办法,原创 2020-10-22 12:25:08 · 141 阅读 · 0 评论 -
计算机出卖了自己的大脑,人也出卖了自己的大脑?
我总有一个疑问,我们的电脑按照设定好的程序运行着固定的程序,他们的大脑像是被我们程序员租用了一样,那电脑除了日常的计算任务,还有没有自己的思考呢?我怎么会想到这个问题呢,因为昨天晚上看到一个问题:如何把在O(1)的时间内删除一个链表的某个节点class LinkedNode{ public int val; public LinkedNode next;}// 所有节点的值都是唯一的void delete(LinkedNode root, LinkedNode beDeleteNode){原创 2020-10-16 10:17:34 · 187 阅读 · 2 评论 -
为什么面试的大公司都注重代码规范?
为什么大公司都注重代码规范, 今天就跟大家唠唠代码规范的好处和重要性。有助于逐层深入的阅读代码。你有没有想过,究竟是什么驱使你打开那些源代码去阅读的呢?或者说你在什么情况下会打开一段源代码阅读呢?第一,你可能想了解一段代码的逻辑,比如,你在调用别人的代码时,感觉输出结果怪怪的,想进去一探究竟。第二,你可能想要学习一下大神写的代码的的核心点。第三,你运行这段代码时遇到了Bug,你要进去找到并修改它。或者想更改一下这段代码的某个地方。可以看出,我们在阅读源代码的目的,都不是要把全部的原创 2020-10-13 18:55:40 · 616 阅读 · 1 评论