700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 网页模板 代码 完整的网页代码模板

网页模板 代码 完整的网页代码模板

时间:2020-12-24 11:05:14

相关推荐

网页模板 代码 完整的网页代码模板

ChatGPT现在真是当红炸子鸡,搞AI的不聊上几句它就感觉已经跟不上时代了。我的看法是ChatGPT在语言理解能力上确实有突破性的进展,理解能力突破人的想象,这一点毋庸置疑。虽然它还饱受回答存在编造,真实性存疑的问题,不过这些都可以解决。

不过ChatGPT仍然有其局限性,这个局限性和所有软件一样就是对现实世界的影响有限。你可以用它来查询信息,提供灵感但是除此之外还能做什么呢?你没法真的用它来服务到你的生活,比如查询个人信息(我的快递到哪里了?)、提醒你缴纳各种费用、交通拥堵时寻找新的路线 — 所有这些事情都可以在特定的软件中做到,但是没有办法通过一个统一的交互界面完成,比如语音交互。当然非要做到这一点那就需要堆海量码农继续套模板玩法,这个没意思。

我的个人看法是ChatGPT接下来可以从“定义机械语言”与“翻译机械语言”两个角度来做尝试。机械语言就是一种定义清晰、可以执行的文本,比如一段代码就是,SQL也是。通过定义机械语言、让其可执行、适配各种互联网服务或者物联网实体,ChatGPT通过翻译能力把人的语言翻译为机械语言就可以操作现实世界了,这样人工智能也就可以轻松的走入到大家的生活中去。

C++是一门很强大的语言,熟练的开发者可以利用C++的特性对程序的很多方面进行掌控。这里我讲一点我个人的感悟。

C++的标准模板库中,各种容器(如std::vector, std::list等)都有一个clear函数,Google的protocol buffer生成的C++类中也都有一个Clear函数。为什么都要有这么一个函数呢?我之前也很不理解,前段时间在回顾我曾经负责维护的一个后端服务时,才领悟到,使用这个函数可以写出性能更好的代码。

我负责的那个服务,请求量是相当大的,业务逻辑也比较复杂,线上服务器上百台,而且都是那种几十核的大机器。这个服务每次接收到请求之后,处理过程中产生的各种数据都放在一个Context对象中,等请求处理完成后将Context对象销毁(delete掉)。Context类里有上百个字段,字段类型也是多种多样,除了基础类型之外,还有vector,list,map,set,以及protocol buffer生成的类。当时做了一些优化,把一些不合理的性能瓶颈给解决之后,发现有大量的CPU资源(印象中最起码有20%吧)消耗在了析构Context对象上,我的mentor说这是合理的,毕竟Context字段多,占用空间也大。

我前段时间回忆这件事情的时候想到,其实可以不用析构Context对象的。搞一个对象池专门用来存储空闲的Context对象,每次收到请求之后优先从对象池里申请Context对象,申请不到的情况下才用new来创建。请求处理完之后将Context对象放回对象池供后续重复利用。这样就可以避免频繁创建以及析构Context对象了。当然,每次放回对象池的时候,需要清理Context对象中的各个字段,这就需要给Context类增加一个Clear函数,在这个函数里调用各个字段的Clear函数,这样模板库中的clear函数和protocol buffer生成的Clear函数也都派上用场了。

那有人会问了,每次用完都要Clear一下,这不也是会占用CPU吗?比析构函数好在哪里?其实就好在省去了内存分配和回收。比如vector内部其实是用数组来存储元素的,它的clear函数并不会把内部的数组析构掉而是继续持有。protocol buffer生成的Clear函数也是类似,不会清理对象所持有的存储空间。在下次重复使用这些对象的时候,也就避免了重新向系统申请存储空间。

如果这样改造一番,估计会节省不少台服务器,不过可惜我领悟到这一点的时候,那个模块已经不归我管了。

通过clear这个例子我感觉到,C++语言提供了特别丰富的特性用于掌控程序的方方面面。有些特性是经验丰富的大牛们给我们埋下的宝藏,只是我们暂时还没发掘到。

大龄码农创业,模板天天做,希望自已越来越优秀!努力相信会有回报。#低代码开发平台#

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。