序
西藏,一直很想去看看,记得高中毕业的时候就想坐火车去拉萨看看,但是爸妈不让,估计是为了安全。最近在翻以前写的备忘录,看到六年前列了个单子,里面有很多想去的地方,后面还跟着很多备注,这么多年过去了,备注我都忘记是啥意思,当时用的字母缩写备注,这些地方中就有拉萨,查了查火车票,正好有一趟周五晚上出发,周日早上到,这样我周日晚上再做飞机回来上班,周末特种兵游。
在导入pfx证书的时候输入密码后一直显示密码错误。尝试通过openssl命令先把密码去除了1
openssl pkcs12 -in xxx.pfx -clcerts -nokeys -out certificate.crt
结果还是不行:
后来发现是openssl版本的原因,14系统的openssl默认是3.x版本,导出的crt不兼容。 通过下面的命令切换openssl版本:1
export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"
再次执行下面这条命令后crt文件可以正常导入1
openssl pkcs12 -in xxx.pfx -clcerts -nokeys -out certificate.crt
最近在写一个算法的多线程计算时发现效率比单线程还慢,单线程大概计算300S,8个线程却计算了900S,这很不正常。一开始以为是锁的原因,于是把算法里面所有的锁都去掉了(该算法估算几乎不影响最后结果准确性),锁去掉之后还是很慢,时间几乎没有变化。最后打开jconsole查看线程,发现计算的线程显示 阻止1 等待6
之类的。观察调用栈发现了卡在random的调用上。
Java的random是多线程是安全的,但是Java的random多线程效率存在问题,为此jdk在1.7之后推出了ThreadLocalRandom,它通过一个线程对应一个专属的random实例解决了多线程下random效率的问题。
它的用法如下:
1 | ThreadLocalRandom.current().... |
networkx的时候发现在3.0版本支持实验性的插件支持 https://github.com/networkx/networkx/pull/6000 ,
支持替换networkx的计算后端,目前比较成熟的后端插件是graphblas https://github.com/python-graphblas/graphblas-algorithms/ ,
通过这个插件,可以同时结合networkx
API的易用性以及graphblas的高性能。networkx插件的原理是利用了python的装饰器。