香书小说

最新地址不迷路:www.xbiqugu.com
香书小说 > 这个学霸疑似巨额知识来源不明 > 第91章 让程序去找程序

第91章 让程序去找程序

第二天,他跑了全套测试。

把新旧两套流程吐出来的几十gb结果进行比对。

结果全部一致。

再看最终成绩。

旧流程跑完要五个多小时。

换上他这个专门给五个数排序的小东西之后,省下二十一分钟。

二十一分钟。

放进一个五六小时的大任务里,这数字小得可怜,像从一桶水里舀走一勺。

换个外行看,会觉得他熬了一整夜,就为这点东西,简直是捡了芝麻丟了西瓜。

但江临不这样认为。

因为这套工具不会只跑一次。

这个项目后面还有几十组要重跑,这套工具以后还要接別的活儿。

今天省二十一分钟,明天省二十一分钟,跑上一百次,省下的就是三十多个小时的高强度算力。

这意味著,他能用更少的机器,跑出更快的叠代速度。

更何况,这只是他揪出来的第一颗小石头。

一个年久失修、堆满了懒惰和冗余的老系统里,这样的小石头,一定还有成百上千颗。

他在记录的末尾这样总结。

一件事被重复的次数足够多,最微小的效率差距,就会撕裂成生与死的鸿沟。

在这个城市,代码写错了,大不了多扣几块钱伺服器费用,大不了半夜爬起来重启,大不了回滚重来。

有售后,有同行,有无数冗余可以挥霍。

但在那个他迟早要回去的废土世界里,没有云伺服器,没有售后,没有第二个工程师替他擦屁股。

在那里,机器慢了,不能先要资源,必须先问。

为什么慢。

底层快一点,省一点,从来不是写进简歷的性能指標。

而是活下去的余量。

写下这句话,江临把这个给五个数排序的小东西,单独归到一个新建的文件夹里。

然后,一个新的念头浮了上来。

五个数,他靠纸笔和经验,一晚上能推出来。

可如果是六个数、七个数、八个数呢?

要排序的数字每多一个,可能的排法就成倍地,再成倍地往上翻,很快就会多到一张纸根本画不下。

而且,比较次数最少不等於实际跑得最快。

还要看机器喜不喜欢这套顺序,看那些岔路藏在哪里。

到那时候,凭一个人的脑子去硬想哪一套手势最好,会越来越不靠谱。

不是不能写。

只是人会变成那个最慢的瓶颈。

江临忽然想到一件事。

如果给五个数排序的完美手势,是可以靠一台机器,把所有可能的排法挨个试一遍,自己找出来的。

那別的小动作呢?

那些同样被重复几千万次,同样卡著整个系统脖子的小动作呢?

人来定规矩,定好什么算对,什么算错,什么是绝对不能碰的红线。

然后,让程序自己去试,去试错,去在那片大得可怕的可能性里,替自己捞出那一段更小,更快,更稳定的代码。

不再是人埋头一行行去写。

是写一个程序,让这个程序,去寻找別的程序。

好吧,让程序去找程序,听著挺玄,到底有什么用?

打个最简单的比方。

你家里有一把瑞士军刀,剪刀、开瓶器、螺丝刀、锯子,什么都有,出门带一把,啥都能应付一下。

可如果你开了家工厂,流水线上每天只干一件事。

拧同一种螺丝,一天拧几百万颗,你还会用军刀上那个小螺丝刀去拧吗?

当然不会。

你会专门定做一把电动螺丝枪,只为这一种螺丝量身打造,又快又稳。

电脑也是一样。

它平时用的那些现成功能,全是瑞士军刀。

为了应付天下所有情况,做得万能,可靠,可每用一次都得把整套复杂东西开动一遍。

但现实里很多任务,其实就是那条每天拧几百万颗同款螺丝的流水线。

动作简单,规矩固定,就是次数多得嚇人。

江临前一晚乾的,本质就是给这样一条流水线,亲手定做了一把专用的螺丝枪。

而让程序去找程序,是把这件事再往前推了一步。

定做螺丝枪本身也是累活儿,得懂材料,懂力道,反覆试。

他不想每遇到一种新螺丝,就熬夜亲手去打一把新枪。

他想要的,是一台会自己造螺丝枪的机器。

你只管告诉它我要拧这种螺丝,必须拧紧,不能滑丝,剩下的,它自己去试一千种枪头,自己测哪种最快最稳,最后把那把最好的递给你。

人只负责说清楚我要什么,什么绝对不能出错。

造枪的活儿,交给机器。

那这东西在生活里能干嘛?

答案是,几乎所有动作不难,却要重复亿万次的地方,背后都藏著这样一条可以被改造的流水线。

你滑手机相册,几千张照片唰一下按时间排好,是排序。

你网购时商品按价格从低到高一列,是排序。

地图给你算最近的路,外卖给你派最近的骑手,游戏里每一帧成百上千个物体重新排先后……

这些你天天在用,却从不留意的瞬间,底层全是同一批被重复了千万上亿次的小动作。

平时没人在乎它们快一点还是慢一点,因为单看一次,都是眨眼的事。

可一旦放到重复上亿次的尺度上,这眨眼的差距,就会变成实打实的电费、伺服器和等待时间。

江临要做的机器,就是钻进这些没人留意的角落,把那些还能更快的小动作,一个个揪出来,定做,替换,提速。

而且它不挑活儿。

今天能给五个数排序,明天就能优化別的小动作。

这个项目用得上,下个项目照样用得上。

一念及此,江临越来越兴奋。

因为排序,只是个敲门砖。

真正让他头皮发麻的,是这道门缝背后那个更大的东西。

如果连找最优程序这件事本身,都能交给机器去做呢?

那么在废土世界里,他就不必再为每一个装置,每一种控制顺序,每一套观测流程,都亲手去写最好的方案。

他一个人,精力有限。

但如果有一天,机器能替他搜出一部分小程序,小流程,小动作。

那么它就不再只是一个排序工具,而是一个单人科研系统的增幅器。

过去,人写程序,是亲手给出每一步。

第一步比这两个数,第二步比那两个,第三步交换……

一步步把答案铺出来。

这要求写的人脑子里先有答案,再把答案翻译成代码。

江临现在想做的,是反过来。

他不再亲手给答案,只告诉机器三件事。

什么是起点——一堆乱掉的数。

允许做什么动作——挑两个位置,比一下,错了就换。

什么算贏——所有可能的乱序,最后都被捋顺。

然后,让机器自己去试。

说白了,就是把排序这件事,变成了一个游戏。

乱掉的数,是棋盘。

每一次比一下,该换就换,是落子。

把所有乱序都捋顺,是通关。

机器要做的,就是自己去玩这个游戏,一步步试,直到找出一套能通关的走法。

这个想法有个让人头皮发麻的地方。

人,从此不必知道答案了。

人只负责定义这个游戏。

画好棋盘,定好规则,標好胜利的样子。

至於具体怎么走,走哪条路最快,交给机器去穷举,去试错。

江临新建了一个文件,敲下三行注释,作为这个游戏的全部规则。

有一堆乱掉的数。

每一步,挑两个位置比一下,错了就换。

直到所有数都被捋顺。

很短。

短到不像一个程序的开始。

『记住本站最新地址 www.xbiqugu.com』