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

“如今,代码数已膨胀至天文级别”

这又不是火箭科技,实际上我自己用wininet API写这段代码,服务器用PHP和MySQL,尽管达不到企业级,但也能支持几十万文件的上传、下载和日志记录——一个人写代码大概也就是两三周的工作量?...这已经不能叫膨胀了,更不是过度设计,这完完全全到了不可理喻的地步。 实际上,不光是这个上传工具,如今任何大型软件公司的任何软件都一样。...根本原因在于,程序员根本不懂怎样通过高效率的底层代码来实现目标,他们甚至从来没见过底层的高效代码。没见过的东西怎么可能做得出来,还要做得更好呢?...代码膨胀似乎是像我这种老家伙的碎碎念,毕竟我已经上年纪了。但我们这帮老家伙们碎碎念的可不是代码运行减慢了50%、规模增大了50%。实际情况远不止于此。...我相信你电脑里99.9%以上的代码都是毫无用处的垃圾,永远不会被运行。

46920
您找到你想要的搜索结果了吗?
是的
没有找到

聊聊PostgreSQL表膨胀

PostgreSQL膨胀 膨胀在PG中表示表或者索引的大小大于实际数据的大小,其次表中每个block或者page的空间利用率低。...这行数据依然在Block B中,这个就是dead tuple.所以在PG中,如果有非常多的update和delete,会产生非常多的dead tuples,这些dead tuples的集合就是PG中的膨胀...针对PG中的膨胀问题是通过vacuum来解决,PG中的auto vacuum会阻塞read/write操作,手动的vacuum则不会阻塞。...验证PostgreSQL膨胀 OS版本 [perrynzhou@local-dev ~/Debug/pg_home]$ uname -a Linux local-dev 4.18.0-348.7.1.el8...rows) xmin隐藏列表示数据插入时候的事务ID,xmax隐藏列表示数据删除/更改时候的事务ID.这次模拟是在会话A中初始化插入数据->会话B中更新数据->在回到会话A中查询数据来观察数据表是如何膨胀

1.5K11

12: 腐蚀与膨胀

学习常用形态学操作:腐蚀膨胀,开运算和闭运算。图片等可到文末引用处下载。...腐蚀和膨胀是针对图片中的白色部分! 腐蚀 腐蚀的效果是把图片"变瘦",其原理是在原图的小区域内取局部最小值。...膨胀与腐蚀相反,取的是局部最大值,效果是把图片"变胖": dilation = cv2.dilate(img, kernel) # 膨胀Copy to clipboardErrorCopied 开/...闭运算 先腐蚀后膨胀叫开运算(因为先腐蚀会分开物体,这样容易记住),其作用是:分离物体,消除小区域。...先腐蚀后膨胀会分离物体,所以叫开运算,常用来去除小区域物体。 先膨胀后腐蚀会消除物体内的小洞,所以叫闭运算。开/闭理解了之后很容易记忆噢(⊙o⊙)。

77430

从入门到精通:如何解决C++模板代码膨胀问题?

作者:guoling,来自微信客户端团队 前言 背景:C++ 模板是一种强大的编程工具,它允许我们编写通用的、可重用的代码; 问题:模板代码的一个常见问题是代码膨胀,即编译器为每个模板实例生成大量的重复代码...现代的编译器已经能够对不同编译单元里的相同模板函数进行去重,老生常谈的 external 模板、将模板代码与非模板代码分离等,对瘦身意义已经不大,我们仍然需要关注如何减少每一个模板实例化的大小。...将模板函数的通用部分提取出来 如果模板函数中有一部分代码与模板参数无关,那么可以将这部分代码提取出来,放到一个非模板函数中。这样,这部分代码只需要生成一次,而不是在每个模板实例中都生成一次。...而这个会导致非常严重的代码膨胀,每个组合就会生成一套全新的基类。...4.3 善用手边工具,多测量监控代码膨胀问题 Linux 平台下(包括Android),可用 nm 打印出每个符号的大小并按大小排序: nm --print-size --size-sort xxx_binary

16610

八.图像腐蚀与图像膨胀

如果有不足之处,还请海涵~ 一.基础理论 二.图像腐蚀代码实现 三.图像膨胀代码实现 四.总结 文章参考自己以前系列图像处理文章及OpenCV库函数,同时部分参考网易云lilizong老师的视频,推荐大家去学习...---- 3.代码实现 完整代码如下所示: #encoding:utf-8 import cv2 import numpy as np #读取图片 src = cv2.imread('test01...图像膨胀代码实现 1.基础理论 图像膨胀是腐蚀操作的逆操作,类似于“领域扩张”,将图像中的高亮区域或白色部分进行扩张,其运行结果图比原图的高亮区域更大,线条变粗了,主要用于去噪。...---- 3.代码实现 完整代码如下所示: #encoding:utf-8 import cv2 import numpy as np #读取图片 src = cv2.imread('test02...一.基础理论 二.图像腐蚀代码实现 三.图像膨胀代码实现 源代码下载地址,记得帮忙点star和关注喔!

52520

C++拾趣——使用多态减少泛型带来的代码膨胀

泛型编程是C++语言中一种非常重要的技术,它可以让我们大大减少相似代码编写量。有时候,我和同事提及该技术时,称它是“一种让编译器帮我们写代码的技术”。...这也是之前所述“一种让编译器帮我们写代码的技术”的表现。         我们逆向上述代码来验证下 ?        ...我们只写了一个模板方法,但是编译器最终帮我们生成了多个,这个过程和现象我们称为发生了“代码膨胀”。        ...我们可以使用该技术,部分的解决泛型技术带来的“代码膨胀”的问题。        ...于是不管call方法操作的类型有多少个,它都没有导致代码膨胀。         需要指出的是,泛型和多态在上例中,体现了“空间”和“时间”的选择问题。

83210

多线程五 锁的膨胀过程

单个线程 多个线程交替执行 多个线程互斥执行 当一个线程去拿一个资源的时候,发现得不到资源,然后就自旋一段时间,然后再去拿,如果再拿不到,那么久会膨胀,具体的自旋时间需要看jvm源码。...可以这样理解:一个线程去拿一个不属于自己线程的资源时,就会膨胀(不是很准确) public static void main(String[] args) { TestA a = new...},"次线程").start(); 结果会发现: 设置两秒的时候,最后的对象是轻量级锁,因为避开了资源争夺,设置5秒的时候,第一个线程持有,并没有释放,导致第二个线程一直在申请锁,最后锁膨胀为重量级锁...轻量级锁产生情况: 一开始启动那会是轻量级锁 互斥执行:线程A持有,线程B也想持有,但A持有中,B先自旋一段时间(这个时间jvm内部的,具体我不知道),拿到锁后,因为锁原本偏向A线程,这时被B拿走,就膨胀为轻量级锁...,拿不到就膨胀为重量级锁; 交替执行:线程A持有,线程B也想持有,但在A持有过程中,B没有去申请锁,在A释放后,B才去申请锁,这里存在重偏向问题,也不是真正的重偏向,及线程B会复用A的线程,在A B间再有一个线程可以避免复用

27210
领券