kernel panic - 司机的杂物间

openssl和libffi最高优化编译参数

https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz
CFLAGS="-Ofast -march=native" CXXFLAGS="-Ofast -march=native" LDFLAGS="-Ofast -march=native" ./configure -prefix=/usr/local/python3 -with-openssl=/usr/local/openssl --with-system-ffi --with-lto
export LD_LIBRARY_PATH=/usr/local/libffi:$LD_LIBRARY_PATH
echo "/usr/local/libffi/lib" >> /etc/ld.so.conf

export LIBFFI_CFLAGS=-I$HOME/menglingjun/software/libffi/lib/libffi-3.2.1/include
export LIBFFI_LIBS=$HOME/menglingjun/software/libffi/lib/libffi.la
export C_INCLUDE_PATH=$HOME/menglingjun/software/libffi/lib/libffi-3.2.1/include/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/menglingjun/software/libffi/lib/pkgconfig

export PKG_CONFIG_PATH="/usr/local/libffi/lib/pkgconfig"
export LDFLAGS="-L/usr/local/libffi/lib"

对一些学科问题的记录和对一些事情的看法

只有在潮水退去时,你才会知道谁一直在裸泳。

写在前面

我本来是每个学期写点总结的,一般在放假开始,不管有没有意义或者是否尴尬都写。这次暑假刚刚开始的时候博客出了点问题就没理,所以一直没写,现在还是写一下吧。

考研?就业?的一些看法

这个学期我观察到很多人都在考研了。但觉得直接找个工作也不是不可,我自己的能力可能不是很强,但也不算得弱吧。
现状
比较狭隘的想法
其实我有时候也在想,要是能早出生十年甚至是九年就好了,十年前计算机行业还没这么火爆。现在程序员经常有一种说法,年龄大了容易失业,因为现在学计算机的人越来越多,甚至我家附近就有少儿编程培训班,如同我小时候的英语或者奥数班那样遍地开花。
有时候形而上学地看纯粹编程,无非就是运用各种库(不只是说Python,包括C语言那种标准库printf),传下参数,亦或是调一下API,也是传一下参数,摆一下布局就完了。
如上所述,学编程的人越来越多,因为门槛低。当你年龄大了,后来的年轻人干调包传参数肯定能做,甚至能比你做得更好,还能做更多的事,按这个角度来说其实是容易失业。






查看全文 »

传播延迟、传输延迟、处理延时以及排队时延等概念的一些类比理解

有条公路(链路)开始处有收费站(路由器),收费站出站就会有不同的去处(路由功能),假定一个汽车车队(分组报文)以100km/h的恒定速度在公路上行驶,那就得依次从进收费站到出收费站,行驶的这段时间就是传播时延。可是在进收费站之前,先得缴费啊,而且你还不能开得太快。而收费站门口的工作人员处理给你发卡的时间假设是10s,那他一分钟就能让六辆车进入高速公路。进入高速之前的这段在收费站的时间,就是限制车辆(bits)不能瞬间涌入高速的时间。也可看作为是所有车队(分组报文)中的汽车(bits)发卡允许进入(传输,或者推向)高速公路(链路)所需要的时间。这个时间就叫做传输时延。

假设汽车以光速行驶(传播速率),则在后一辆车还在等待收费站入口处工作人员慢吞吞地发来的卡的时候(传输速率),前一辆车早已到达下一个收费站准备出站了(实际上前一辆车都可以绕着地球转七圈了)。所以这时候在车队后部分的车还在等发卡的时候(传输速率慢,等待传输),车队前面几辆车已经光速到了下一个收费站。地球上一般不考虑传播延迟吧?除非是汽车开上了火星(好奇者号),从地球发信号在火星上要十几分钟才能收到。。

传输时延是分组长度(车队的车数)和链路传输速率(工作人员发卡给你的快慢)的函数。

而传播时延则是两个收费站(路由器)之间的距离和汽车速度(传播速率)的函数。

排队时延好理解,先来的先拿卡过闸呗(推出路由器)

处理时延不太好用收费站的类比。。实在要强行类比的话,可能是收费站工作人员检查一下你的车牌是否套牌?汽车是否爆胎?检查一下车要往哪开?身份证行车证驾驶证是否过期?。。。实际上处理时延通常是在微秒或者更低的数量级的。。

时延带宽积=传播时延*带宽,我理解的是,在第一辆车驶出收费站但还未到达下一个收费站时,这条高速路最多能够容纳的车的数目。按李全龙老师课上的内容来看,是指:这个链路上能容纳多少个比特,或是以比特为单位的链路长度。

使用memcpy来复制线性表

这个想法早在学《数据结构》时就做过了,不过时隔已久有些细节记不太清,今天看到在线性表插入元素,又想到了当年这个操作,不过比起当年有了更深入的认识,这是可能是所谓否定之否定吧。

传统方式

先弄个数组放线性表

using sqllist=struct{
    int *data;
    int length,maxsize;
};

然后初始化它:

sqllist *t=new sqllist;
t->data=new int[100];
memset(t->data,0,100);
t->maxsize=100;
t->length=90;
for(int i=0;i<t->length;i++)    t->data[i]=i+1;