【视野提升】软硬件融合

个体和系统

凯文·凯利在他的《失控》一书中提到了一个非常有意思的概念——涌现,简单来说,就是众多个体的集合会涌现出超越个体特征的某些高级的特征。

例如,通过把个体的计算机连接到一个网络,涌现出了互联网这个新兴事物,深刻地改变了我们生活的方方面面。

谷歌通过搜索引擎连接了所有的互联网内容,成为互联网事实上的入口;腾讯通过社交软件连接了人与人,改变了我们的社交习惯;亚马逊和阿里巴巴通过电商平台连接了人与商品,改变了我们的购物方式。

在蚁群中,单个蚂蚁的行为是简单的,但是这些简单行为的集合却能够形成复杂的群体行为,如建造复杂的蚁穴、觅食和防御等。人脑的思维过程也是涌现的结果,单个神经元的反应非常简单,但是数以亿计的神经元相互作用,形成了复杂的思维和意识。
互联网的信息流动和社交网络的形成也是涌现的结果,无数的个体在互联网上发布和分享信息,这些信息流相互作用,形成了互联网的信息海洋和社交网络。

这种涌现现象的出现需要具备一定的条件和机制,例如,在蚁群中,需要有一定的信息交流机制、协作机制和反馈机制等。

在人类社会中,需要有一定的社会规则、法律制度和文化传统等。这些机制和条件的作用下,使得个体的行为能够相互影响和协作,最终形成超越个体本身的集体行为。

AWS(Amazon Web Service,亚马逊云计算服务)通过大规模的云计算数据中心改变了互联网和IT基础设施。云计算不仅仅重构着互联网技术生态,而且持续推动着整个传统行业逐渐向更高阶的产业互联网演进。

物联网通过连接无数的传感器和智能化设备,排行出了智慧家庭、智慧工厂、智慧城市。人工智能通过更加复杂,更具深度的神经网络算法及更多大数据的训练,涌现出了智能,帮助我们做部分决策。

之前在做传感器网络的时候,还玩过一段时间云服务器。那年毕业时候拿的第一个offer是去北京做云容器。

本质上,学习看书学习的目的,除了工作,某种程度上也是在帮我们认识这个时间的运转机制。

无数个体融汇成系统,个体和系统如此不同却又相互关联。我们在研究宏观系统的时候,需要考虑微观个体的特点;同时,我们在研究微观个体的时候,也需要考虑宏观系统的需求。

互联网公司运营着能够支持数以亿计用户的云系统,需要考虑更宏观系统的事情。

云计算公司服务成千上万有互联网应用需求的公司,同时考虑到不同云计算厂家的个性化业务,由此出现了很多不同的硬件需求。

但传统的IC公司距离市场和用户太远,并且自身技术和商业策略不十分完善,无法完全满足这些硬件需求。

内涵和外延

服务器是数据中心的基本节点,通过不同层级的交换机把服务器连接到一起,从而构成一个网络。

在这个网络中,单个服务器就是一个基本的系统,它不仅包含了芯片、主板、板卡、电源及机箱等硬件,也包含了运行于硬件之上的软件。

此外,一个基本的系统还包括服务于不同场景的各种算法和策略,以及需要进行处理和存储的数据等

如果我们把硬件、软件、算法、数据等比作一个点,把硬件、软件、算法和数据连接到一起所组成的系统比作一条线,那么组成互联网业务的服务器集群则构成一张网,一个宏系统。

进一步而言,数据中心多种业务交互共存的体系则是多种宏系统的叠加。我们要考虑的不仅仅是网内节点之间的相互影响,还要考虑不同网之间跨网的相互影响。

例如,数据中心规模非常庞大,假设单个服务器每天有万分之一的故障率,那么整个数据中心每天会有数百起故障发生,硬件层面的稳定性和高可用设计则是解决这一问题的关键。

再如,AWS当前有400多万台(估算,可能还在动态增加中)服务器,在虚拟化的支持下形成了数千万个计算节点,如果要把这千万级的节点划分到数以十万计的VPC里,那么不仅要考虑跨VPC、跨域访问的问题,还要考虑VPC动态变更的问题,千万级服务器动态虚拟网络系统的运维管理将是一个巨大的挑战。

VPC(Virtual Private Cloud)是一种基于云技术的虚拟化网络架构,它可以为用户提供类似于私有云的网络服务。通过VPC,用户可以在云平台上构建自己的虚拟网络,包括虚拟私有服务器、虚拟私有存储和虚拟专用网络等。

VPC(Virtual Private Cloud)是一种基于云技术的虚拟化网络架构,它可以帮助用户构建自己的虚拟网络环境,具有灵活的配置和可扩展性,以满足不同的应用场景需求。以下是一些常见的VPC应用场景:

  • 云端专属网络:VPC可以为用户提供云端专属的网络环境,通过虚拟私有服务器、虚拟私有存储和虚拟专用网络等技术,保证数据的安全性和隐私性。
  • Web应用或网站托管:VPC可以托管Web应用或网站,通过虚拟专用网络等方式实现数据加密传输和访问控制,保证Web应用或网站的安全性和可靠性。
  • Web应用访问控制:将多层Web应用划分到不同的安全域中,按需在各个安全域中设置访问控制策略,可以通过创建一个VPC,将Web服务器和数据库服务器划分到不同的安全组中。
    云上VPC连接:VPC可以提供云上虚拟私有网络连接,实现不同云平台之间的互联互通,方便用户进行跨云平台的资源管理和数据交互。
  • 混合云部署:VPC可以与本地数据中心进行连接,实现混合云部署,扩展本地网络架构,提高系统的可用性和可靠性。
  • 数据处理:使用VPC可以轻松地构建分布式应用系统,用于处理海量数据,比如大数据分析、机器学习等。
  • 存储服务:可以将VPC中的虚拟机和存储服务结合在一起,提供高可用的存储服务,比如数据仓库、云存储等。
    网络安全:VPC可以提供高度安全的网络环境,保护企业应用和数据免受外部攻击,增强企业网络安全。
  • 负载均衡:私有网络可以在逻辑上对虚拟机进行组织,实现负载均衡,提高应用的可用性和性能。

总之,VPC是一种基于云技术的虚拟化网络架构,它可以为用户提供类似于私有云的网络服务,具有安全性、灵活性、高可用性和可扩展性等特点。在不同的应用场景中,可以根据需求选择适合的VPC配置和服务,以实现高效、可靠、安全的云平台应用。

一旦和宏观的规模相联系,需求就不再是简单个体系统内涵的业务场景,还会包括个体系统的外延约束,这就需要在更宏观的高度系统性地思考业务场景,并落实到个体系统,以及“线”“点”的设计中。

简单和复杂

“产品设计要学会做减法,给用户极致的简单”。在如何做减法这一问题上,需要进行很多的思考和权衡。

从技术的角度来分析,我们为用户提供的产品越简单,产品背后所隐藏的技术细节就会越复杂。

例如,对于漂浮在大海中的冰山,用户所能看到的只是海面上的一个小冰尖(交互接口),看不到海面以下冰山的面貌(技术实现)。

如果我们为用户提供的产品功能丰富,并集多种技术于一体,那么我们需要考虑如何将这些复杂功能和技术融合成一个整体,同时为上层用户提供足够简单的接口来进行访问。

我们通过分层的纵向划分,以及同层不同组件的横向划分,逐个层次、组件地把复杂的功能实现封装在内部,把对外实现的功能接口尽可能地简单化。

每一层依靠下层提供的服务接口来实现自己的功能,同时为上层提供服务接口。

每个组件通过与其他组件进行通信来实现自身功能的处理,以及与其他组件的协作。

这在我从软开转到嵌入式再到芯片验证,这个感受非常的深刻。

分层及分组件需要在整个系统层次规划,不仅要考虑与上下层间、左右模块间接口的交互,还要考虑某个功能放置在某个层的合理性,更要全面地考虑整个系统的功能划分,避免造成不必要的功能浪费或缺失。

如何定义分层、分组件的功能划分,封装层级、组件的具体功能实现,提供哪些足够简洁的交互接口,是系统设计关键的价值所在。

这就是为什么架构师真的很需要经验,以及大的平台很需要一个牛掰的架构师。

简单和复杂既相互矛盾又和谐统一。云计算为用户呈现出一个分层的产品体系,基于硬件基础设施,支撑IaaS、PaaS及SaaS的上层服务。

每一层使用下一层不同组件提供的服务,并与同一层的其他服务协作,共同为上一层的服务提供支持。

开放和封闭

在谷歌的Android生态里,系统、硬件、应用、分发都是完全开放的。

虽然Android起步晚于苹果的iOS,但它快速地占领了智能手机端绝大部分市场份额。

除了应用,iOS生态中的系统、硬件及分发完全掌控在苹果自己手里,虽然市场份额不占优势,但苹果获取了整个智能手机市场的绝大部分利润

回顾半导体产业的发展历史。

  • 第一阶段是一个封闭的阶段,以英特尔、TI为代表的半导体公司自己设计并制造芯片,这一阶段的半导体产业是一种高门槛产业。

  • 之后,TSMC扛起了开放的大旗,创建了只做生产不涉足设计的Foundry模式,开启了半导体产业的第二阶段。

  • 以TSMC的创立为标志,大量Fabless如雨后春笋般诞生,典型Fabless如Qualcomm、NVIDIA、MTK等。

如今,互联网云计算正进入一个新的时代,大型互联网公司开始涉足芯片领域。例如,谷歌的TPU,亚马逊的NITRO、Graviton、Inferentia,华为的鲲鹏、昇腾,阿里的含光800 AI芯片等。

互联网云计算公司开始整合软硬件设计整体方案,并逐渐形成了各自封闭的体系,以此来获取更大的差异化价值。就像苹果在智能手机领域一样,在互联网云计算领域,除了面向用户的接口是标准化、开放的隐藏在用户接口软硬件设计却又是各自封闭的。

公司需要不断探索新的技术和方法来保持竞争优势。而另一些人则认为它会导致技术的碎片化和垄断,因为封闭的体系使得其他公司难以进入市场并打破垄断。

突然想说马斯克是真的敬佩,国内的科技公司总是感觉缺少了一种使命感,又有几个老板能称得上是企业家。

快与慢

“天下武功,唯快不破”用来形容互联网的发展非常贴切。微信还处于研发阶段的时候,在腾讯内部要跟其他团队抢机会,在外部要跟其他很多类似的社交软件竞争。

2011年1月,微信正式发布,只允许用户发送文本和照片;2011年5月,微信推出了“语音消息”;2011年7月,微信增加了基于位置的服务“附近的人”“漂流瓶”和“摇一摇”功能;2012年3月,微信用户总数突破1亿大关,距离微信第一版推出仅433天。

“重剑无锋,大巧若工”用来形容互联网的发展同样非常有道理。英特尔在1971年发布了第一款处理器4004,20世纪80年代,随着PC的爆发,英特尔成了IT行业的基石,50年持续不断的投入,推动着IT行业迅猛发展。华为“数十年如一日”聚焦于通信领域,积跬步以至千里,逐步领先全球。

在被称为“币圈”的各种虚拟币圈子里,有“币圈一天,世间一年”的说法,这是当前让慢变快的极致典范。各种虚拟币单价的涨跌不仅快速,而且幅度惊人。“币圈”超快的节奏剧烈影响着矿机市场的技术发展。各家矿场和矿工们为了抢得先机,获取更多的利润,以超快节奏进行着矿机的升级换代。挖矿平台从CPU、GPU到FPGA,再到ASIC,仅仅经历了3年多的时间。一个性能领先的ASIC矿机型号的保鲜期只有半年,半年后这种型号的ASIC矿机基本上就无法赚到钱了,需要换用更高性能的ASIC矿机。

云计算需要快与慢的交融。互联网软件要足够灵活,能够快速迭代优化;底层硬件要足够高效,逐步加速和卸载系统的功能。软件具有灵活性,性能虽“慢”,却“快”速迭代硬件具有很高的执行效率,性能虽“快”,开发却“慢”。

这也是为什么我看好大厂的原型验证,因为这会大幅度缩短产品的开发周期。

通用和专用

听到通用,我们通常想到的是CPU和软件,平台唾手可得,开发简单灵活,但CPU和软件的性能相对较低,能效比也较低;

听到专用,我们通常想到的是基于FPGA或ASIC的定制硬件,它们的软硬件开发门槛都很高,但其性能更加强劲,能效比也更高。

通用CPU因其具有灵活性、平台化的特点,不仅覆盖领域非常广泛,而且若要在新兴领域快速实现想法,通用CPU也是首选平台。

通用CPU存在于我们生活和工作的方方面面,比如,云端的服务器、办公用的计算机和笔记本电脑,以及我们的智能手机终端,它们的操作系统和上层应用都运行在通用的CPU上。

专用的FPGA或ASIC的软硬件开发门槛都特别高。当一个领域逐步走向成熟并具有一定规模,需要更加快速、更加庞大的计算能力时,通常会开发专用的FPGA或ASIC来代替CPU。定制的FPGA或ASIC同样舞台宽广。

例如,移动通信基带基站侧因为规模的原因通常使用FPGA多于ASIC,而终端侧功耗敏感且规模庞大所以更多地使用基带ASIC单元。又如,在人工智能领域,因为算法复杂,计算密集,所以基于FPGA或ASIC的方案也层出不穷。再如,区块链领域激烈而快速地完成了从CPU到ASIC的过渡。

软件算法硬实现,在做一些加解密的方案时候,我们可以选择openssl,但是也可以选择硬件实现算法core。


没有绝对的通用,也没有绝对的专用

通用的CPU加入了扩展指令的协处理器(如英特尔的AVX,ARM的NEON);

专用的FPGA或ASIC也在向通用的方向回调(如这些年流行的DSA架构,用于网络包处理软件可编程的PISA架构);

GPU、DSP、ISP等处理器则处于通用和专用之间。

NVIDIA提供了基于GPU的编程框架CUDA,CUDA封装了GPU的很多细节,提供类似CPU平台的编程友好性,并针对很多特定领域开发了功能丰富且强大的函数库,使得GPU得到了广泛应用。

通用和专用是手段不是目的。在选择通用或专用的计算平台时,不仅需要考虑性能和开发门槛,还需要考虑其他很多因素的综合影响。

随着系统规模越来越庞大,通用和专用的界限也越来越模糊,两者互相学习和借鉴,尽管如此,系统评价的标准只有一个:更优综合性能的同时,以求更低的综合成本。

集中与分布

在IC领域,SoC(System on Chip,片上系统)和NoC(Network on Chip,片上网络)的发展趋势是典型的集中式单系统设计,如智能手机芯片集成了应用处理器、通信基带、无线Wi-Fi、GPU、ISP及AI处理器等。

但在一些功耗、成本敏感的场合(如物联网场景),节点只完成非常简单的功能(如数据采集),而把数据传输到云端处理、存储及分析、决策,把决策后的指令下发到终端执行,终端节点只构成系统的“触角”,完整的系统是由很多简单的微小系统组成的。

云计算通过超大规模的数据中心,集中为用户提供服务,数据的处理和存储主要集中在数据中心各种形态的服务器中。

电商App,本地终端的主要功能是浏览商品、下单及支付等;对服务器端而言,同一时间会有数以千万计的访问量,这些访问的处理都需要在庞大的云端后台完成。

但是,集中式的云计算服务无法覆盖所有场景,如自动驾驶需要数据的快速分析并决策执行。

随着数据量的快速增加,集中式的云计算逐渐无法满足大数据量的处理需求,于是边缘计算开始流行。

在数据中心内部,计算通常都是在CPU执行的,我们通常称之为集中式的以计算为核心(Compute Centric)。

CPU性能提升速度逐渐放缓,而数据量还在大幅度增加,为了克服大数据处理分析面临的难题,不得不将集中式的以计算为核心转换成分布式的以数据为核心(Data Centric)。

于是出现了很多新的技术架构,用于卸载和加速各种原本在CPU中的工作任务。对数据的处理也更加靠近数据存储或传输侧,大量的计算分散在靠近数据的地方,减轻了主机CPU的压力。

以计算为核心,数据量会越来越大,使得存储的分层也越来越多。
但大数据量的处理会使得数据局部性失效,存储分层的作用大打折扣,整个体系结构越来越复杂,CPU越来越不堪重负。
从数据中心整个系统的层次角度来看,以数据为核心,用效率或性能更高的加速单元分散在靠近数据的地方完成数据的大部分处理,是重要的趋势。

量变和质变

以前的互联网系统规模都不大,只有几十台或几百台服务器,在虚拟化的支持下可以形成数千台的服务器,这在以前已经算是一个很大的系统了。

随着互联网业务的急剧增加,出现了很多超级系统。例如,阿里巴巴运营着规模十分庞大的电子商务平台,包括C2C零售市场淘宝、B2C市场天猫等在线市场,服务超过6亿活跃消费者。

而云计算更是将规模的问题放大到了极致。因为云计算要服务成千上万的互联网用户,每个用户都会有一个或多个互联网系统。AWS现已在全球22个地理区域内运营着69个可用区,以每个可用区拥有5万台服务器估算,AWS大概拥有400万台服务器,这些服务器用于为全球用户提供云计算服务。

当一个互联网系统规模较小(几百台服务器)的时候,只能采用通用服务器。如今,许多云计算厂家都拥有数百万台服务器为用户提供上百种产品服务,应用于各种不同的服务场景。但从底层技术来看,这些服务场景会归约于比较集中的一些软硬件功能集,因此,在规模和特定场景的推动下,非常有必要进行针对性的软硬件优化。

随着云计算的不断发展,云计算(特别是IaaS层)的产品服务越来越趋于成熟,云计算厂家的服务器规模越来越大,面向特定场景的产品和服务迫切需要进行深层次的软硬件重构,同时需要为产品服务定制优化软硬件,以此来提升软硬件性能并且降低成本。

软件和硬件

通常而言,运行于CPU、GPU等平台的程序为软件,而作为载体的CPU、GPU等平台则为硬件,这跟“某个任务软件实现,某个任务硬件加速”有一些区别。

“某个任务CPU软件实现”指的是整个任务都基于CPU指令的程序实现,完全运行在CPU上。

“某个任务的硬件加速”指的则是把任务的关键部分运行在一个硬件加速器上,CPU主要承担简单的、不需要太多性能的任务部分(如数据交互和加速器运行控制等)。

通过硬件加速可以进一步提升任务处理的性能,同时可以提升运行效率和降低综合成本。

通常,软件开发和硬件开发是割裂的两个部分

例如,英特尔和AMD等CPU厂家定义好了指令集体系结构,并专注于某个具体CPU的微架构和具体实现,而软件开发工程师则基于CPU上的各种开发环境开发自己的软件程序。

再如,对于芯片厂家研发的SoC,虽然系统架构师会做好它的软硬件规划,但它依然和用户的业务场景在细节上有很大的差别。

芯片厂家为开发者提供SoC芯片、相关的驱动程序及参考设计等,开发者基于这些已有的框架平台开发自己需要的上层业务功能。

硬件平台是“条条框框”,软件开发只能在这些“条条框框”的范围内发挥而无法跳出这些“条条框框”,也不能自己定义“条条框框”,更难做到优雅地与“条条框框”共舞。

“软件定义硬件”代表了一种趋势:要站在系统层次主动定义个体的硬件。但“软件定义硬件”更多地强调系统,容易忽略个体的特点。

站在系统层面可以“看得更远”,代表了宏观的整体思考,能够更好地统筹资源、定义系统功能。站在个体层面,个体是本源,代表了事物本质的特征。事物受客观规律的约束,具有特定的发展规律。软件和硬件融合更好地协调了系统与个体的关系。

站在系统的角度既可以更好地定义硬件,也可以更好地定义驾驭硬件的软件,没有既定“条条框框”的约束,有的只是各种各样软件和硬件的“积木”。

我们可能需要重新设计或改造一些“积木”,与已有的“积木”配合,极其容易地搭建属于自己的系统。

在这个系统里,软件里面可能会包含硬件,硬件里面也可能会包含软件,软件和硬件深度融合,密不可分,最终实现功能强大、深度优化、可持续快速迭代的系统平台。

小结

在云计算领域,随着技术的不断发展和创新,软硬件整合的趋势也越来越明显。这种趋势使得云计算服务提供商可以更好地为用户提供高效、可靠、安全的云服务。

首先,软硬件整合可以更好地优化资源利用。通过将软件和硬件整合在一起,云计算服务提供商可以更好地协调和管理资源,提高资源的利用率和效率。这有助于减少浪费和降低成本,同时提高服务的可靠性和稳定性。

其次,软硬件整合可以提供更好的安全保障。通过将软件和硬件整合在一起,云计算服务提供商可以更好地保护用户数据和隐私,提供更好的安全保障。这种整合也有助于提高服务的可靠性和稳定性,减少安全风险和漏洞。

此外,软硬件整合还可以促进技术创新和业务拓展。通过将软件和硬件整合在一起,云计算服务提供商可以更快地推出新服务和产品,满足不断变化的市场需求。这有助于提高公司的竞争力和创新能力,推动整个行业的快速发展。

然而,软硬件整合也面临着一些挑战和问题。例如,软硬件的兼容性和协同工作是一个难题,需要云计算服务提供商进行深入的研究和开发。此外,随着技术的不断更新和升级,也需要云计算服务提供商不断进行技术改进和优化,以保持服务的领先优势。

软硬件整合是云计算领域的一个重要趋势,有助于提高服务的效率、安全性和竞争力。但也需要云计算服务提供商不断进行技术研发和创新,以应对不断变化的市场需求和技术挑战。

内容的资料是基于云计算领域背景,但是关于软硬件融合的思想,我想任何复杂SoC都会涉及到。

资料

  • 【软硬件融合】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/593240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity C# 中通俗易懂LINQ使用案例

文章目录 1. 从数组或列表中查询元素**:2. **排序与分组**:3. **连接多个数据源**:4. **聚合操作**:5. **分页查询**:6. **多条件查询**:7. **转换和投影(Select)**:8. *…

计算机网络期末复习——计算大题(一)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

SSM养老院综合服务系统----计算机毕业设计

项目介绍 该项目为后台管理项目,分为管理员与护工两种角色; 管理员角色包含以下功能: 管理员登录,个人资料密码管理,用户管理,床位类型管理,床位管理,护工管理,老人管理,咨询登记管理,预约登记管理,老人健康信息管理,费用管理等功能。 护…

MFC用代码加载一张bmp图片到picture control并适应到控件大小 解决OnInitDialog中调用不显示

要使用CImage::Draw的缩放功能来适应控件大小,你需要先获取控件的当前大小,然后根据这个大小来调整图片的绘制尺寸。以下是一个修改后的示例,展示了如何实现这一点: 获取控件大小:首先,获取Picture Control…

1.C++语言的编译器及编译流程

1.C编译器 编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。以下是一些主流的C编译器及其简要用法: GNU Compiler Collection (GCC):’ GCC原名GNU C Compiler,后来逐渐支持更多的语言编译(C、Fortran、…

Flutter 四:main.dart简单介绍

main.dart简单介绍 运行结果

CNN——LeNet

1.LeNet概述 LeNet是Yann LeCun于1988年提出的用于手写体数字识别的网络结构,它是最早发布的卷积神经网络之一,可以说LeNet是深度CNN网络的基石。 当时,LeNet取得了与支持向量机(support vector machines)性能相…

MySQL5.7控制复制源服务器的SQL语句

官网地址:MySQL :: MySQL 5.7 Reference Manual :: 13.4.1 SQL Statements for Controlling Replication Source Servers 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. MySQL 5.7 参考手册 / ... …

Vue:Vue 3.4 新特性

Vue 3.4 是 Vue.js 的一个重要更新,它在性能、API 和能上带来了许多改进和增强。 更好的 TypeScript 支持 Vue 3.4 进一步加强了 TypeScript 的集成,提供了更好的类型推断和更丰富的类型定义,使得使用 TypeScript 开发 Vue 应用变得更加顺畅…

看懂 Git Graph

目录 文章目录 目录Git Graph看懂 GraphVSCode Git Graph 插件1. 选择展示的 Branches2. Checkout 到一个 Branch3. 找到指定 Branch 最新的 Commit4. 找到 Branch 分叉口5. 查看 2 个 Commits 之前的区别 Git Graph Git Graph 是服务于 Git 分支管理的一种可视化工具&#xf…

大文件断点下载Range下载zip包显示文件损坏

问题:大文件下载,其它格式的文件及rar格式的压缩包正常下载但是 之后zip包下载后解压失败 原因分析: 1. 查看上传文件的属性值 如图,10.4kb是已经约去小数点的值,准确的大小应该是10663字节10.4130859375KB,所以用10.…

VS Code 远程连接云机器训练配置

VS Code 远程连接云机器 Visual Studio Code(以下简称 VS Code)是一个由微软开发的代码编辑器。VS Code 支持代码补全、代码片段、代码重构、Git 版本控制等功能。 安装 VSCode步骤简单且网上有很多教程,这里不过多重复了。 VS Code 现已支…

Nacos配置回滚

前言 很多时候,我们会配置错一些属性,或者需要回滚某些属性,这时候使用Nacos的回滚功能就很方便了 配置回滚 1、在控制台中,选择左侧导航栏的 “配置管理”,进入历史版本,选择Group和data id&#xff0c…

掌握ROS:完整的认识ROS

目录 前景知识补充 什么是元操作系统? 高层决策 高层决策的特点 什么是ROS? ROS的框架 1. 通信机制 系统工具 开发框架 ROS的开发流程 ROS的应用场景 前景知识补充 什么是元操作系统? 元操作系统(Meta-Operating Sys…

opencv C++透视变换

#include <opencv2/opencv.hpp> #include <iostream> int main() {// 1. 读取图像 cv::Mat image cv::imread("C:/Users/10623/Pictures/adf4d0d56444414cbeb809f0933b9214.png");if (image.empty()) {std::cerr << "无法读取图像!"…

PTA找出不是两个数组共有的元素(C语言)

读题&#xff1a; 给定两个整型数组&#xff0c;本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组&#xff0c;每行先给出正整数N&#xff08;≤20&#xff09;&#xff0c;随后是N个整数&#xff0c;其间以空格分隔。 输出格式: 在一行中按…

以源码为驱动:Java版工程项目管理系统平台助力工程企业迈向数字化管理的巅峰

随着企业规模的不断扩大和业务的快速发展&#xff0c;传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring CloudSpring BootMybat…

vr眼镜和AR眼镜的区别有哪些?哪些产品可以支持VR应用?

vr眼镜怎么连接手机 要将VR眼镜连接到手机上&#xff0c;您可以按照以下步骤进行&#xff1a; 1. 确保您的手机支持VR应用程序&#xff1a;首先&#xff0c;确保您的手机具备运行VR应用程序的硬件和软件条件。一些VR应用程序可能对设备有特定的要求&#xff0c;如处理器性能、操…

【Java并发】深入浅出 synchronized关键词原理-上

一个问题的思考 建设我们有两个线程&#xff0c;一个进行5000次的相加操作&#xff0c;另一个进行5000次的减操作。那么最终结果是多少 package com.jia.syn;import java.util.concurrent.TimeUnit;/*** author qxlx* date 2024/1/2 10:08 PM*/ public class SynTest {privat…

Sharding Sphere 教程 简介

一 文档简介 1.1 分库分表诞生的前景 随着系统用户运行时间还有用户数量越来越多&#xff0c;整个数据库某些表的体积急剧上升&#xff0c;导致CRUD的时候性能严重下降&#xff0c;还容易造成系统假死。 这时候系统都会做一些基本的优化&#xff0c;比如加索引…