07 2021 档案

摘要:虚函数其实最主要的性能开销在于它阻碍了编译器内联函数和各种函数级别的优化,导致性能开销较大,在普通函数中 log(10)会被优化掉,它就只会被计算一次,而如果使用虚函数,log(10)不会被编译器优化,它就会被计算多次。如果代码中使用了更多的虚函数,编译器能优化的代码就越少,性能就越低。虚函数通常通 阅读全文
posted @ 2021-07-24 17:51 caopf 阅读(218) 评论(2) 推荐(0) 编辑
摘要:一般来讲 IP地址可以确定到一个网卡 但是一张网卡并不仅仅为一个软件或者一个进程服务,比如一台笔记本电脑一般只有一个网卡,但是我们有许多需要网络通信的软件,这时就需要端口号来区分了 其实到最后ip+端口号主要确定到的是某一个Socket 本质上 是个二级索引 阅读全文
posted @ 2021-07-17 20:25 caopf 阅读(193) 评论(0) 推荐(0) 编辑
摘要:malloc会多16个字节, 这16个字节相当于malloc出来的地址的头 这前8个字节代表的含义都是malloc字节数+16+1 前8个字节表示之前的空间有多少没有被分配的字节大小,后8个字节表示当前malloc已经分配的字节大小 malloc通过是否加1来作为前一个数据块是否已经分配的标志,加1 阅读全文
posted @ 2021-07-06 16:50 caopf 阅读(308) 评论(4) 推荐(0) 编辑
摘要:1. 高并发、任务执行时间短的业务怎样使用线程池? 2. 并发不高、任务执行时间长的业务怎样使用线程池? 3. 并发高、业务执行时间长的业务怎样使用线程池? 线程池本质上是生产者和消费者模型,包括三要素: 往线程池队列中投递任务的生产者; 任务池队列; 从任务池队列取出任务执行的 worker 线程 阅读全文
posted @ 2021-07-05 16:32 caopf 阅读(63) 评论(0) 推荐(0) 编辑
摘要:decltype关键字decltype可以在编译期推导出一个变量或表达式的结果类型(但不会真正计算表达式的值),并且使用这个结果定义新的变量。 追踪返回类型先看一个错误的案例:代码想推导出返回值(t + u)类型,为什么编译错误?答:因为编译器是从左向右读入符号,此时t/u并没有读入,因此不能推导t 阅读全文
posted @ 2021-07-04 17:15 caopf 阅读(36) 评论(0) 推荐(0) 编辑