碎碎碎碎屁

kernel_task狂飙cpu之迷

by on 2月.21, 2015, under

MacBookAir5,1,之前情况是突发的cpu狂飙伴随着磁盘快速增长导致磁盘满(增量大约4G),约几分钟后自行恢复。由于磁盘满时不能进行任何操作,当然也没法找到底是谁快速占磁盘。

网上看到的解kernel_task cpu快速涨的方法,简单来说是在/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources 这个目录下删除机型对应的plist,并重启。实际操作后发现重启完后磁盘空间还占着但cpu不高(可能偶然),有稍许空余空间得以检查磁盘满之事。

发现大文件目录为/System/Library/Caches/com.apple.coresymbolicationd/下的data文件以及另一个grow.mkxAdPh文件,各约4G左右吧,lsof检查后发现有系统进程还开着data文件,mv掉之后重启,暂无异常。

真是专业清磁盘20年……

3 Comments :, more...

uk之行

by on 7月.22, 2014, under

这次是和一个在读书小伙伴晃英国,在一个伦敦快毕业小伙伴家蹭住。算下来,我总共用了不到¥22000,来回机票约占40%,当然不算代购的东西们。手机卡淘宝上买的giffgaff,信用卡是走之前申请的中行长城国际卓隽卡,因为那边用芯片卡比较多。照例流水账下 (continue reading…)

2 Comments :, more...

密码保护:2013总结

by on 2月.02, 2014, under review

这是一篇受密码保护的文章,您需要提供访问密码:

要查看留言请输入您的密码。 more...

一个人欧洲苦逼游

by on 10月.09, 2013, under review,

计划超完美吧!

原来计划和一个德国读书小伙伴一起在欧洲玩半个月,我算休年假,小伙伴算提前回学校等开学。一起买了9-18中午国航PVG飞FRA的机票,然后9-18晚上到德国,住小伙伴家里,然后先在德国玩一周,预计去海德堡、慕尼黑、天鹅堡、国王湖。9-25早上汉莎FRA飞BCN,在巴塞罗那住三晚,玩三天。然后9-28中午aireuropa BCN飞MAD,在马德里住两晚,玩两天。9-30上午easyjet MAD飞LIS,在里斯本住两晚呆三个白天。10-2晚上vueling LIS飞BCN,10-3凌晨到BCN,机场睡一晚,10-3清晨汉莎BCN飞FRA。10-3在小伙伴家里补补觉、荡荡法兰,10-4 shopping下,晚上国航FRA飞PVG,10-5中午到上海。
注:所有时间都是当地时间,FRA、BCN、MAD的时区都是CEST时区(GMT+1)也就是和国内差6小时,LIS时区是WEST(GMT+0),和国内差7小时。

提前的准备

PVG往返FRA的机票在7-12就买好了,住宿证明都是booking.com上定的。8-5把材料寄给外企德科签证(一个官方代理商),8-12使馆电话调查,8-16签证到手,时间一天都没多给。
8-21把欧洲间5趟的机票买好,其中一趟付款步骤有问题,8-26打了10分钟鸟语电话人工出机票。

现实却更残酷!

在出发前两周不到吧,小伙伴母上去体检,结果查出问题了,然后住院,然后开刀,然后小伙伴不得不陪着母上。开始小伙伴还在考虑9-24赶回FRA,我先在德国自己玩。最终,残酷的现实是,小伙伴在10-2晚上到的FRA!

于是下面就是正文,一个人欧洲苦逼游。

首先,这种被小伙伴抛弃,要一个人独自玩的事实是不适合提前和我母上说的,不然母上会比我还焦虑。出发前的一周,母上经常看到我神情呆滞的面孔,时不时的来问我下是不是紧张啊,废话麽!一个人玩欧洲,还不能和你说,不紧张才怪!
然后改行程呗,欧洲间的五趟机票三趟是廉航的,还有一个往返是算特价票,退票基本没什么钱能退的,这部分行程不动算了。德国部分的行程本来是指望小伙伴定的,我都没查过,所以临时做行程加德语只会Danke、Bitte的我还是放弃德国自由行,默默考虑找个旅行社跟个团吧。在出发飞FRA的前一天晚上,终于找好了一个300欧不到,西欧玩5天的华人团,正好是9-19发团,9-23回到FRA。9-24休息一天,9-25开始的行程基本不变,不过变成了一个人玩。
(continue reading…)

6 Comments :, , , , , more...

从str2time开始的优化

by on 4月.07, 2013, under ,

线上有个perl的脚本,准实时(1分钟cron着)的跑着,一般一跑要1分多钟。之前初看还以为是sql设计差、脚本变量都是全局等等问题,后来想想不行,得用数据说话,于是找到了传说中的nytprof。安装据说要先装下JSON::Any,再装Devel::NYTProf;用的时候perl -d:NYTProf ./a.pl,再nytprofhtml nytprof.out下,好了现在只要w3m nytprof/index.html就能看到详细了。

不看不知道,一看吓一跳,最前面耗时最长的居然都是Date::Parse、Time::Local,而main、DBI这些原以为会慢的差前面两个Date、Time一个数量级啊。那今天就把目光放在Date::Parse里,仔细看了脚本,其实就是用到了str2time,把形如”2013-04-07 22:22:22″的转化为那个秒数。我们这个脚本大概执行一次会用到50多万次的str2time。

网上翻了翻说是Date::Parse慢,于是换了个Time::ParseDate,测试用例如下:
#1.pl
use Date::Parse;
my $start = "2013-04-08 02:00:00";
my $end = "2013-04-08 03:00:00";
for (my $i = 0; $i < 100000; $i++)
{ print str2time($start),"\n",str2time($end),"\n";}
#2.pl
use Time::ParseDate;
my $start = "2013-04-08 02:00:00";
my $end = "2013-04-08 03:00:00";
for (my $i = 0; $i < 100000; $i++)
{ print parsedate($start),"\n",parsedate($end),"\n";}

time比较出来的时间是从原来的13秒变成9秒,稍有提高。

期间多次strace发现经常会访问/etc/localtime,怀疑是模块里不论何时都要去算下现在时间引起的,遂决定直接用timelocal这个最基本的命令传入年月日时分秒来计算。
#3.pl
use Time::Local;
sub new() {
$_ = @_[0];
my( $Y,$M,$D,$h,$m,$s ) = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
return timelocal($s,$m,$h,$D,$M-1,$Y);
}
my $start = "2013-04-08 02:00:00";
my $end = "2013-04-08 03:00:00";
for (my $i = 0; $i < 100000; $i++)
{ print &new($start),"\n",&new($end),"\n";}

于2.pl的耗时比较,从9秒降到6秒多。

strace里还是能看到访问/etc/localtime,在Time::Local里看到还有timegm,试试
> return timelocal($s,$m,$h,$D,$M-1,$Y);
< return timegm($s,$m,$h,$D,$M-1,$Y)-28800;

由于并不牵涉时区,遂直接写死在里面。瞬间,从6秒多降到2秒内,和最开始比已经下降了一个数量级了。所以那,调用次数高的函数啊一定要好好调教下~

把这个提给原脚本owner后发现,原脚本只是为了比较两个时间string转后的大小。他直接改成
> return timegm($s,$m,$h,$D,$M-1,$Y)-28800;
< return ($Y*366*24*3600 + $M*31*24*3600 + $D*24*3600 + $h*3600 + $m*60 + $s);

来进行比较。时间差不多从2秒内变为1秒内。

然后洗澡时候忽然想起别人说过笑话,数据库存时间直接用string存20130407222222,于是测试这样比大小。
sub new() {
$a = @_[0];
$a =~ tr/ \-://d ;
return $a;
}
my $start = "2013-04-08 02:00:00";
my $end = "2013-04-08 03:00:00";
for (my $i = 0; $i < 1000000; $i++)
{ if (&new($start) < &new($end)){print 1};}

测试用例上提高一个数量级跑,上一种7秒多,这一种2秒多。
#p.s.用=~ s/\-|\s*|\://g;代替=~ tr/ \-://d;会比上一段所说的还要慢
也就是说,最开始13秒的,现在已经变成0.2秒了,所以那,优化逻辑也很重要~

改了之后load下降

Leave a Comment :, more...

Page 2 of 121234510...last »