白天是个程序员,晚上就是个有抱负的演员,这是就是我,我住在天朝的陪都。

googletest(GTest)
include <gtest/gtest.h>/*GTest中断言都是成对出现的。即分为两个系列: 1. ASSERT_*系列 2 .EXPECT_*系列 EXPECT_*系列是比较常用的。 在一个测试特例中,如果局部测试使用了EXPECT_*系列函数, 它将保证本次局部测试结果不会影响之后的流程。但是ASSERT_* 系列在出错的情况下,当前测试特例中剩下的流程就不走了。 他们的区别就是在是出错时调用了GTEST_NONFATAL_FAILURE_还是GTEST_FATAL_FAILURE_ 在出错的情况下,ASSERT_*的else里return了。而EXPEC……
HLS直播延时
HLS协议是将直播流分成一段一段的小段视频去下载播放的,所以假设列表里面的包含5个TS文件,每个TS文件包含5秒的视频内容,那么整体的延迟就是25秒。因为当你看到这些视频时,主播已经将视频录制好上传上去了,所以时这样产生的延迟。当然可以缩短列表的长度和单个TS文件的大小来降低延迟,极致来说可以缩减列表长度为1,并且TS的时长为1s,但是这样会造成请求次数增加,增大服务器压力,当网速慢时回造成更多的缓冲,所以苹果官方推荐的ts时长时10s,所以这样就会大改有30s的延迟。参考资料:https://developer.apple.com/library/ios/documentation/Ne……
std::lock_guard 与 std::unique_lock
(1)unique_lock。unique_lock ulk(g_mtx1);线程没有 g_mtx1 的所有权,根据块语句的循环实现自动加解锁。线程根据 g_mtx1 属性,来判断是否可以加锁、解锁。(2)lock_guard。lock_guard lckg(g_mtx2);线程拥有 g_mtx2 的所有权,实现自动加解锁。线程读取 g_mtx2 失败时,则一直等待,直到读取成功。线程会把 g_mtx2 一直占有,直到当前线程完成才释放,其它线程才能访问。
某大数据工程师笔试试题
题目见附件试题一,没任何难度,估计是给笔试者的福利试题二,起初笔者对题目的描述理解有偏差(题目中对LCOUNT理解出错),导致思维进入了死胡同(太久不练手的后遗症)。答案为:K = 2LCOUNT = 0; B = N[K - 1]B++B = 1LCOUNT < LP[B] = 0#include <stdio.h> int main(int argc, char *argv[]) { int M = 100; int L = 30; int LCOUNT, K; int P[101]; int N[101]; ……
Shell获取CPU信息笔记
逻辑CPU个数cat /proc/cpuinfo | grep "processor" | wc -l物理CPU个数cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l每个物理CPU中Core的个数cat /proc/cpuinfo | grep "cpu cores" | wc -l如果有两个逻辑CPU具有相同的"core id",那么超线程是打开的。每个物理CPU中逻辑CPU(可能是core, threads或both)的个数cat /proc/cpuinfo | grep "siblings"
咻~