2020-07
17

为什么慢

By xrspook @ 8:53:45 归类于: 烂日记

要把9000多篇文章,准确来说,是9498篇文章生成一个静态网站实在太难了。如果只是几天,哪怕是几百天,放在哪里,用什么表达,都不成问题,无论是哪个编程语言都可以做到,只是快慢有所不同而已。到现在为止,我已经试过三种编程语言了,首先是go,然后新都javascript,最后是python。

go对应的是hugo,hugo的建站速度是最快的,但快的代价就是电脑的所有性能都会被用到极限。生成网站的时候,CPU飞到顶,内存一直往上走,最后当我看到内存到达90%以上,CPU的使用率反而下降,说明已经到顶了。因为我在做建站服务器测试,那些虚拟的东西全部都放在内存里,显然,我8GB内存的小电脑没办法在某些模板之下,hold住这9000多篇东西,但并不是所有hugo的模板都做不到,有些简单的模板可以做到。另外一些,别说9000多,一两千,都很困难。具体反映出来的效果就是建站的时间很长,其次是内存封顶,结束时间遥遥无期。

第二快的是python。python是我的老熟人了。而生成静态网站,我用的是mkdocs。这是一个python脚本,但实际上脚本自己又调用了很多东西。所以你以为你只是装一个脚本就完事,但实际上你得连串装一堆脚本。只有几个markdown文件的时候,mkdocs建站是很快的,但没到达hugo那种秒杀的地步,但是就建站构成来说最简单的。初始化以后,会自动生成了一个配置文件和一个文件夹,你把markdown文件放到文件夹,然后建站,就可以看到网站的雏形,虽然那个效果肯定不是你想要的。配置文件只有一个,所以也没什么好让你发挥的地方。正是因为够简单,所以我觉得,对那些纯粹写作的人来说,而且,是纯粹写书的人来说,mkdocs这个东西要比hugo实在。但其中一个不友好的地方是mkdocs自带的搜索对中文不友好。搜索英文的时候杠杠的,但是中文就无能为力。如果丢进去mkdocs的文件非常多,到达几百几千的时候。你会很崩溃,跟hugo不一样,mkdocs的CPU的使用率永远只耗尽我其中一个CPU,所以CPU的使用率永远只是25%,至于内存,貌似我一直都没有看到变化有多大。生成一个几页的网站,需要几秒,生成一个200多页的网站,需要十几秒。但是生成一个2000多页的网站,却需要1000多秒。为什么会有这种指数式的增长呢?我觉得跟他们的搜索索引有关。总的来说我觉得gitbook和mkdocs的思路类似。他们会建立一个json文件。而那个东西我感觉就像是一个字典。之所以能自带站内搜索,就是因为他们建立了这个东西。读取写入其它文件,再怎么慢,也有个限度,而且是匀速的,但是如果要不断的增加字典内容,把新的文件内容全部写入到json里,然后存起来,这就很变态。思路很简单,但执行起来的时候相当费劲。

其中一个让其更加费劲的地方在于,但markdown文件非常多,就肯定有一个不断打开文件关闭文件的操作,还得递归某个文件夹里面的所有东西,想想都知道这有多累。但如果有个大文件,全部都已经结合在一起的话,就没有这个烦恼。之所以我有这种感觉,是因为之前我写了一个脚本,专门用来输出9498篇文章的标题与文件名,作用是造一个目录。当时我没有把脚本输出文件的代码缩进,结果仅仅输出目录,居然需要20多秒。目录很小,但是运行时间却跟我把全部内容都输出一样过。昨天我才发现缩进的问题,那就意味着每次增加内容,文件都打开写一遍。这就意味着那个文件被反复的打开关闭9000多次。紧紧减少一个缩进,等于把写入的次数从9000多变成1,于是那个运行时间就缩短为了6秒。读取一个二十几MB的XML文件并输出目录仅仅需要6秒。可想而知,如果不是频繁打开关闭9000多个markdown文件,而是直接用完整的一个大XML文件生成json,速度会相当快。那不就是跟字典类似的东西吗,简单到没朋友。如果我不想进行全文搜索,我只需要进行标题搜索,事情会变得更简单。简单到跟我生成那个目录没啥区别。

经过了这一番折腾以后,让我明白到明细数据与汇总数据使用起来真的很不一样,虽然就总量来说,二者是等价的。

接下来,或许,我真的会像网友所说,自己写一个脚本,把已经进行wordpress标准格式化的XML转为一个静态网站。

天下大势,分久必合,合久必分。这次我算是深切体会到了。

2020-05
24

老机子

By xrspook @ 16:30:09 归类于: 烂日记

昨天我第一次使用床上书桌搭配10.1英寸的笔记本电脑写日志。感觉那个东西刚好放在我家的木沙发上,高度刚好。问题只是我觉得现在的眼睛不怎么好,所以我总想把字体放大。但在Notepad++里,把字体放得过大了,就会很奇怪,所以我也只能忍受比较小的字体。跟智能设备的屏幕比起来,其实手提电脑的字体已经比较大了,但是我还想再大一些,但最后我只能忍受比较小的字体。在大分辨率的设备里面根本不需要敲满屏的文字就超过1000字了,但是在那个老掉牙的笔记本电脑里,满屏的字才仅仅凑够了1000个。实际上我写的时候我并不知道字数是多少,虽然每个段落都有字数计算。最后我只是凭感觉完成1000字的,结果还真这样。字数最终不到1100,算是个料想之中的结果吧。

这个笔记本电脑已经非常久远了。我买回来的时候是个二手货。我买回来的那一年,我表哥的大儿子还没出生。我记得在我表哥结婚的那一天,我在他家里玩的就是这台电脑,当时觉得还行。现在他的大儿子已经上小学了,估计今年9月就上三年级了。所以这台笔记本电脑我买回来也接近10年,而在卖给我之前,表哥可能又用了好几年。这么历史悠久的电脑现在还能用,已经算是个奇迹。如果这是个台式机,估计早就不行了。

这台机器的原配是Linux系统,但显然大家都不习惯,所以买回来以后,表哥就装了个Windows进去。原配只有1GB的内存,表哥忍不住把它升成了2GB。1GB根本没法过日子。也正是因为这台机的内存足够大,所以才能撑到了今天。内存大,但是CPU决定了机子的命运。2GB内存之下,只能安装XP系统。用Win7的话,连运行估计都会成问题。另外一个限制了机器不能再进一步的是非常低的分辨率。估计现在的软件开发都理会这么小分辨率的机器了,所以软件安装的时候,弹出的那个窗口经常要比屏幕还要大,所以那些什么下一步、确定的按钮都在屏幕之外。当然这种事情完全是可以用设置去实现操作的,但是那得多麻烦。在我入手新的笔记本电脑之前,我一直都是带着这台机器出门的。旅游的时候带着,外出培训学习的时候带着,单位搞什么活动,需要在外面几天的时候,我也带着。光是完成一些很基本的功能,这个机器还是可以做到的,比如写一下日志,看一下视频,保存一下图片。在我有了新的笔记本电脑之前,我不觉得这个机器有多么的不能忍受。因为还在之前那个科室的时候,我的那个电脑不比这个好多少。还记得《地球上的星星》DVD上的彩蛋视频,很多我都是在这个小电脑上完成翻译校对的。但这一两年里,不知不觉中XP被淘汰了,Win7现在也已被列入淘汰的行列。当你很久都不用这个东西,再次拿出来用的时候才发现,原来那已经跟这个时代脱节。其实这个电脑还是能做一些很基础的事的。另外一个让我非常吐槽的,是这个笔记本电脑的电池续航跟现在的电脑不一样,当年的电脑,电池比较糟糕。现在的电脑只要不插电,发热不多,尤其是你只用来看视频,不是打游戏,也不进行一些高端的操作,机子几乎是不发热。从前的电脑,无论你做的是什么操作,都会发热严重,曾经我试过,电脑发热到烫手自动关机,所以当时我习惯性的操作是拆掉电池,直接插电使用。

拿10年前的机子跟现在的机子比,我太不厚道了。

2019-11
5

升级到MIUI 11了

By xrspook @ 11:03:06 归类于: 烂日记

无声无息地,昨天天我看到手机有一个系统更新,没有仔细看就让手机去下载了。那个更新包很大,有700多MB。下载完更新完以后我才发现系统字体不一样了,而且图标也不同。在完全进入系统之前,还有一段介绍和各种选择,接着我意识到,自己已经升级到了MIUI 11。还记得买这个红米Note7的时候,这台机还是MIUI 9,然后过了一阵就升级到了MIUI 10,现在到了MIUI 11。我个人觉得MIUI 9和MIUI 10区别不大。

最开始,我用小米手机用的是小米1S青春,当时的MIUI版本是4,接着变成了5,然后变成了红米系统。我的第2台小米手机小米4c,一开始的系统,好像是MIUI 7。MIUI 7用得挺好,但升级到MIUI 8以后,有些手机就出状况了,比如我妈的小米4电池会突然的发生尿崩,电量显示很有问题。当我把她的机子刷回MIUI 7以后,一切正常,所以好长一段时间,我都叫我妈千万不要更新MIUI系统,虽然我已经设置了禁止自动更新,但说不准什么时候还是会出状况。我妈的小米4比我的小米4c买迟一点点,但因为我的内存是3GB而她的只有2GB,所以虽然两款手机都是小米4系列,但显然到了后期我的手机还能扛一阵子的时候,她的手机已经卡得不行了。因为内存小而卡机这可以理解,因为安卓手机都是这副德性。但是从一开始,我妈的小米4电池就要比我的小米4c耐用。我的新机买回来居然不能支撑到两天,而且还只是普通使用,真的让我很震惊。因为平时我是个不怎么看手机的人,而我妈的小米4通常能能撑三天或者以上。因为内存的原因,所以我妈的手机比我换得早,她先换上了小米max3。那是一个电池相当大的手机。我觉得,以她当时的使用频率,估计一个星期充一次半电就够了,但后来因为手机比之前快很多,而且电量也很给力,所以她每天看手机的时长正常情况下比我还要多。小米max3是一个神奇的存在,因为即便在待机三天或以上的情况下,从100%用到30%的电量,居然能扛10个小时或以上的亮屏时间。相比之下,我现在用的红米Note7能支撑的亮屏时间就比她少得多,如果待机时间长的话,亮屏时间只有4个小时。如果待机时间为一天,亮屏时间能达到6个小时或以上。新机能这样,我不确定一年或者两年以后会怎么样,但起码在我正常使用的时候。待机2-3天是很正常的。所以我估计,即便是过了两年,我的待机时间仍然保持在一天半到两天。不用频繁地充电就保证了电池不会那么容易老化,同时,那个充电的插口也不容易坏掉。我感觉这台手机最终如果被迫我得换掉,可能又是内存太小。我买这台机的时候6+64已经是顶配,如果可以的话,我宁愿加一点钱,变成8+128,但显然。入手这台机的时候,我的小米4c真的已经无法扛下去了。我很感恩这台红米Note7,因为对我来说,这是一场及时雨。

新更新的MIUI 11到底如何,还得花一段时间使用才能得出结论。

2019-01
23

电池放心了

By xrspook @ 10:14:28 归类于: 烂日记

还记得红米Note 7一出来的时候,好不容易大家终于收到了手机,但却发现手机号称的4000毫安的电池却配不上4000的表现,究其原因,大家觉得是因为红米Note 7配的是安卓9系统,这个东西还没被大家消化吸收,所以很多软件都不兼容,反映出来的是有很多小毛病。显然这种问题并不是MIUI自己独有的毛病,而是所有人系统会有这种烦恼。但实际上,昨天当我自己拿到手机以后却发现其实这个4000毫安电池还是很优秀的,相比于我之前的小米4c,显然二者不是一回事。即便我把小米4c里面的东西全部移走,32GB的手机里只剩下一半的内容,其性能还是跟红米Note 7差很远。我这里说的性能主要是指耗电量方面。

我之所以要有买新手机,替换掉小米4c的一个非常重要的原因是耗电量实在太恐怖太神经了,尤其是经历了去年的双11以后。那个疯狂的双11,我为了赚更多的红包,不得不在下载了N个阿里矩阵的APP,一个一个点进去打卡。虽然我已经不是N个app同时打开,而是关了前面才开后面的,但这仍然会存在问题。打卡那种事,如果网络通顺。大概半个小时就能完成,但那半个小时内最多的时候,可能我要丢掉40%的电量。在那段时间里,我明显感觉到手机发烫,但即便如此,我还是得继续下去。让我觉得意外的是,当时只是电量下降得厉害,但是到了冬天的时候更加是发生电池突然崩溃掉。第一次遇到那种事是在电量还剩下30多的时候。那天早上我去地磅,听了一首歌都不到,30%电量就剩下9%。如果来开门的人再迟15分钟,那么回到办公室的时候估计我的手机就会自动关机了。那天我回到办公室,电量还剩下5%。显然这是非常不正常的,从30%到5%。这段过程只有大概十分钟。其间,我只是听了不到一首音乐。甚至,当电量掉到20%以上的时候,我已经关掉音乐且关掉屏幕了。当我有买红米Note 7念头的某个早上。醒来以后,我照常在被窝里先去打卡,首先在微信上完成两个签到,然后在口碑农场浇水喂牛,接下来我打算去支付宝签个到。整个过程加起来不到三分钟。那天晚上我43%电量关wifi开飞行模式睡觉。第二天早上起来,电量有38%。但三分钟之内,电量居然可以掉到自动关机。之前我已经见识过过自动关机,对这种事也就不惊讶了,但是当我插上电以后,发现手机的屏幕,居然在闪那个支付宝最后关掉页面的鬼影图。显然这就很恐怖!幸好,在充电一段时间以后,我长按开机键,一切恢复正常,但经历过这种事以后,显然我对电池非常没底了。38%的时候会崩溃,谁知道会不会到60%的时候,也发生这种事。因为小米4c的电池是不可拆卸的。所以电量消耗到自动关机的时候能拯救它的也就只能是插上充电器。虽然很多年前我就已经买了移动充电器,但实际上一直没有随身用。我用手机的方式决定了我不需要经常把移动充电器带在身边。但显然,小米4c出现这种情况已经不是电池容量不足,而是电池出问题了。从CPU及内存的配置来说,其实小米4c还不算太糟糕,虽然同时开几个app会卡机,但起码还能开,还能正常运行。小米4c死在了电池上了。在入手红米Note 7之前,我最注重的是电池,因为好几年来的智能手机使用经验告诉我,因为CPU太糟糕而淘汰的其实没多少,限制智能手机非换不可尤其是安卓手机,一条是内存另外一条是电量。我第一个换掉的小米1s青春是因为1GB的内存实在没办法过日子,而第二个换掉的小米4c是因为电池实在让我心惊肉跳。

经一事长一智,显然,人不可能一开始就知道自己真正需要的是什么,但现在,在经过六年多的摸索以后,我大概知道,我需要的智能手机到底是怎样的了。

2018-11
18

任务交接

By xrspook @ 15:19:11 归类于: 烂日记

昨天终于在家里的台式电脑上加上了另外一条4G的内存,打开64位的操作系统,终于显示我有8g内存了。8G跟4G的区别是什么呢?最大的不,估计是用浏览器上网的时候。回到32位系统,即便我用了8G的内存,但可使用的却只有2.92G。这样的后果就是我很快内存就爆满了,开机的时候已经有50%在使用。所以如果我要比较顺畅地浏览网页,我就什么都不能打开,不能挂QQ,也不能挂微信,360杀毒要关闭掉,坚果云也最好不要开。但显然这样是没办法过日子的,毕竟这不是一个只用来上网的机器,我需要用来工作。关于开机速度,我觉得当你在系统里装了越来越多的东西后开机跟关机速度都会下降,尤其是开机速度。关机速度我觉得现在这个系统要比32位的那个快,主要原因我也觉得是内存识别的问题。现在我可以把一大堆的东西全部都开着,然后打开浏览器,打开多个网站后还是很顺滑。因为内存的频率只有1333,所以一开始的反应速度会有点慢,尤其是开机的时候。单位用的是六代i5,1800的双通道4G内存。所以跟家里这台相比,开机速度会明显更快,但实际上,当系统打开了以后差别不大。单位的那个1800双通道内存是低电压1.35伏的,而家里这两条1333是经典的1.5伏。更低的电压意味着更低的消耗,但实际上我这个台式机也没什么大消耗的东西,比如说里面没有显卡,也没有各种风扇。让我觉得有点惊讶的是,如果我的机子里面没有独立显卡,理论上系统就得调用一定的内存实现显卡的功能,但实际上打开64位系统计算机属性的时候,你会看到那里写的内存就刚好是8G,没有减掉一些。所以是否可以这般理解,其实在32位的系统里看到的2.92G,其实也没有因为核显的原因被减掉一些。

我的换系统是先在64位的系统上安装上我需要的东西,运行了一段时间打上了各种补丁以后,再回到32位的系统,把东西删掉。我最小心翼翼删除的是坚果云。在我删掉之前,我首先要让机子断网,比如昨晚我需要删掉我以前的10.1寸笔记本上的坚果云的时候,我就先把家里的WiFi关掉,因为笔记本是自动连接WiFi的。如果我不关掉,一开机还没等我反应过来,坚果云已经在进行各种检查然后同步文件了,这显然没有必要,所以为了不让坚果云运行,我必须得把WiFi关掉。坚果云的卸载步骤是首先要把软件关掉,然后控制版面卸载程序。家里的台式机上,从前32位的系统里卸载坚果云我第一步做的是拔掉网线,然后后面的步骤跟笔记本一致。32位系统需要卸载的东西最必须的是几个得联网的软件,比如坚果云微信QQ以及360杀毒。一些用不上的东西也可以卸掉,比如说WPS 2019,Nero的刻盘工具,从前我用来测试不同系统下的网页效果的虚拟机,还有一些我半天都用不上的功能。但是一些核心的部件,比如Notepad++,office 2003,PS等我还是会把它们留在系统上。这个32位系统,一开始的时候我是打算删除,把硬盘格式化掉的,但现在我觉得既然我硬盘空间足够大,我没必要这样做,万一某一天我突然又要把它用起来呢?当我2T的硬盘出了事故的时候,系统还是能自动从另外一个硬盘引导进入。虽然那个硬盘里的数据在前天之后不再被同步了,但起码最基础的东西我还能做。删掉了一堆东西以后,我感觉32位的系统关机的速度快了很多。

不知道是不是因为32位的系统物理内存太小,所以在系统运行的时候,硬盘需要高速运行的频率更大(虚拟内存起作用?),所以机械的声音会更明显。估计为了以后装机方便,我要给自己刻录一个装机工具的光盘,但貌似那个也不小所以可能4G的DVD都放不下。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress