该文介绍了两种图片压缩算法。这两种方法都是通过GDI+技术实现。其中一种是质量压缩:图片尺寸不变,质量降低,大小降低。另一种是尺寸压缩。该文介绍的两种方法对JPEG、bmp和PNG都有效。
(转载请指明出于breaksoftware的csdn博客) 之前我们讲解过,CPU是整个计算机的核心,它的主要工作是负责调度各种资源,包括其自身的计算资源以及GPU的计算计算资源。比如一个浮点数相乘逻辑,理论上我们可...
(转载请指明出于breaksoftware的csdn博客) C++是一门静态语言,它最终的编译成果是可以直接运行于冯诺依曼体系的计算机上,而不像其他动态语言,可以运行于虚拟机等容器中。由于对运行效率得追求,C++也是...
brpc又称为baidu-rpc,是百度开发一款“远程过程调用...(转载请指明出于breaksoftware的csdn博客) 据目前公开的资料,我们发现百度内部从2010年开始,开发过若干rpc框架:ub系列rpc(ubrpc,nova_pbrpc、public_...
OpenMP是一套基于共享内存方式的多线程并发编程库。第一次接触它大概在半年前,也就是研究cuda编程的那段时间。OpenMP产生的线程运行于CPU上,这和cuda不同。由于GPU的cuda核心非常多,可以进行大量的并行计算,所以...
除了我们熟悉的github,各大云厂商也有自己的代码托管服务。本文讲解如何在Amazon的CodeCommit中托管代码。 根账户登录 AWS有两种账户登录界面。 ... 我们需要定义一些IAM(Identity and Access M...
(转载请指明出于breaksoftware的csdn博客) 首先我们定义一个结构体ProcessGuard,它持有子进程的ID以及保护它的的锁。这样我们在多线程中,可以安全的操作这个结构体。 #include <st...
目前团队并没有QA岗,而且在很长一段时间内,可能也不会设立QA岗,所以我们需要RD...(转载请指明出于breaksoftware的csdn博客) 以下我将以工作中一个实际例子讲解如何将一个不可测代码变成更加合理且可测代码。 ...
目前市面上介绍GPU编程的博文很多,其中很多都是照章宣科,让人只能感受到冷冷的技术,而缺乏...(转载请指明出于breaksoftware的csdn博客) 谈到计算,我们一般都会先想到CPU。CPU的全称是Central Processing...
(转载请指明出于breaksoftware的csdn博客) 交集(intersection) 交集是集合运算中经常会用到的计算,其表达是两个集合共有的部分(图中红色区域) STL中有set_intersection方法可以实现该功能。它是C++17...
Colly是一个使用golang...(转载请指明出于breaksoftware的csdn博客) Collector是Colly的核心结构体,其中包含了用户对框架行为的定义。一般情况下,我们可以使用NewCollector方法构建一个它的指针 // NewColl...
通过《Colly源码解析——框架》分析,我们可以知道Colly执行的主要流程。...(转载请指明出于breaksoftware的csdn博客) 递归深度 以下例子截取于Basic c := colly.NewCollector( // Visit only domains: ...
这个bug的诞生源于项目中使用了一个开源C库。...为了直达问题根节,我将问题代码简化如下(转载请指明出于breaksoftware的csdn博客) #include <iostream> #include <stdarg.h> enum type...
其中一个比较重要的原因是,它和C/C++一样,可以编译成机器码运行,这保证了执行的效率。在上述解释型语言中,它们都支持了“反射”机制,让程序员可以很方便的构建一些动态逻辑。这是C/C++相对薄弱的环节,而Golang...
从github上,我们可以看到它相对于其他框架而言,具有优越...(转载请指明出于breaksoftware的csdn博客) 本文我们将分析其路由的原理。先看个例子(源于github) func main() { // Disable Console Color //...
在《Golang反射机制的实现分析——reflect.Type类型名称》一文...(转载请指明出于breaksoftware的csdn博客) 方法 package main import ( "fmt" "reflect" ) type t20190107 struct { ...
(转载请指明出于breaksoftware的csdn博客) Gin的中间件,本质是一个匿名回调函数。这和绑定到一个路径下的处理函数本质是一样的。 再以Engine的Default方法为例 func Default() *Engine { debugPrin...
在《libev源码解析》系列中...(转载请指明出于breaksoftware的csdn博客) 我们先看个最简单方案,下面的代码会监视/home/work下文件(夹)的新增、删除等操作。 void call_back(ev::stat &w, int reve...
今天看了一篇文章,讲各种语言的优势和劣势。其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机...(转载请指明出于breaksoftware的csdn博客) 目前在网上讨论排序算法更多是C语言实现的。...
代码是思想的表达。阅读代码是一个猜测、求证的过程。这个过程非常费脑,所以...(转载请指明出于breaksoftware的csdn博客) 关系数列 等差数列 比如我们要构建的序列存储的值是0,1,2,3,4……9999。 常规写法 ...
写C++难免会遇到模板问题,如果要针对一个模板类进行测试,似乎之前博文中介绍的方式只能傻乎乎的...(转载请指明出于breaksoftware的csdn博客) 应用 GTest将这两种方法叫做:Typed Tests和Type-Parameterized...
只要写代码,就会遇到代码注释的问题。在不同的公司,不同的项目组,不同的项目中,可能会有不同的注释标准。有些标准让我们感觉很受益,有些则让我们...(转载请指明出于breaksoftware的csdn博客) “不”的原则 ...
C++语言为了兼容C语言,做了很多设计方面的考量。但是有些兼容设计产生了不清晰...(转载请指明出于breaksoftware的csdn博客) class Base { public: Base() = default; void set_v_b(int v_b) { _v_b = v_b; ...
在《内存泄漏分析的利器——gperftools的Heap Checker》一文中,我们介绍了...(转载请指明出于breaksoftware的csdn博客) 我们使用类似于《堆状态分析的利器——valgraind的DHAT》中的测试代码作为例子。为了让...
在《DllMain中不当操作导致死锁问题的分析--死锁介绍》一文中,我们介绍了死锁产生的原因。...(转载请指明出于breaksoftware的csdn博客) 构造一个场景 #include <pthread.h> pthre...
(转载请指明出于breaksoftware的csdn博客) 一般场景下,我们都是把开源项目代码编译到我们自己的项目中。这样的“融合”,就相当于让两个项目进行了“基因重组”,最终产出一个“基因战士”。在进行“基因重组...
(转载请指明出于breaksoftware的csdn博客) 因为加入测量,就会导致误差。我已经尽量将环境影响降低,但是还是难免有误差。大家可以通过文后附的工程自行测量,结果可能和我存在一定的出入。 ...
(转载请指明出于breaksoftware的csdn博客) “短视频”都是以“文件"的形式保存于服务器上。任何一个便于传播的文件都会有一种定义良好的格式,同样视频也有其格式。这系列我们不会去从微观的角度去分析...
(转载请指明出于breaksoftware的csdn博客) 因为加入测量,就会导致误差。我已经尽量将环境影响降低,但是还是难免有误差。大家可以通过文后附的工程自行测量,结果可能和我存在一定的出入。 文中将测试...
这是《bug诞生记》的第一篇文章。...(转载请指明出于breaksoftware的csdn博客) 本系列博文的案例将都秉承一个原则——“因知识缺失,而非粗心大意导致”。在实际工作中,粗心大意产生的bug太...