首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

性能影响长倍。为什么C会默认选择64位而不是硬件的80位?

答案

关于 C 语言默认选择 64 位而不是硬件的 80 位,主要原因是为了兼容性和通用性。早期的计算机硬件使用 8 位(80 位)的二进制位数表示一个数字或字符。然而,由于 64 位(8 位)的位宽较大,因此 C 语言选择了 64 位作为默认的位宽,以获得更好的数据表示和存储能力。

此外,64 位架构的处理器已经成为了市场上的主流,并且被广泛应用于服务器、计算机和其他高性能计算设备中。因此,选择 64 位作为默认位宽,可以让编写的代码更加通用,适应性更强。

名词解释

  1. 位宽:指计算机或其他设备处理数据时,一次可以处理二进制数的位数。
  2. 64 位:一种计算机系统架构,使用 64 位的二进制位数表示数据。
  3. 80 位:一种计算机系统架构,使用 80 位的二进制位数表示数据。
  4. 兼容性:指一种系统或设备能够与其他系统或设备兼容,以便进行数据交换或使用。
  5. 通用性:指一种系统或设备能够适用于不同的应用场景,具有广泛的适用性。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

相同型号物理机 容器性能不如虚拟机?

根因分析 代码有 Bug , 启动都会 fullGC ,都有启动失败概率,但是容器 fullGC 耗时长,请求不断堆积, 虚拟机过段时间可以自行恢复 这里主要定位,为什么容器 fullGC 时间...需要你具备很高业务能力,包括对业务流程熟悉度、对软件架构及软件内实现逻辑理解程度,甚至是对OS和硬件原理都要有深入理解。...如上图:排除 业务层 和 软件架构 两层,相同代码,相同物理机型号,相同机房情况下,现在需要识别 软硬件性能瓶颈。...为保证服务性能应选用 performance 模式,将 CPU 频率固定工作在其支持最高运行频率上,从而获取最佳性能,一般都是默认 powersave,可以通过 cpupower frequency-set.../storcli64 /c0 /v0 set rdcache=ra 经验教训 上线前,基准测试重要性 & 基准测试要包含应用,以应用感知为准。 下篇详细 服务器性能压测指标及方法。

11210

干货 | 携程酒店RSocket实践

作者简介 刘诚,携程酒店研发性能架构师。2014年加入携程,致力于通过架构演进,控制企业硬件成本。 一、初识RSocket 在QCon2019北京大会上第一次得知RSocket。...印象深刻是Netifi公司通过他们研发RSocket帮助企业实现微服务,在40,000RPS场景下,Istio需要每月3495美金,Netifi每月只要388美金,同时性能提升10,这无疑对任何企业都是极具吸引力...是不是压测方式有问题,为什么性能一点也没有提高? 三、RSocket定义 在解答上面的问题之前,我们先来看看RSocket到底是什么?...至此就能理解为什么性能没提高了,在我们实践场景中,只是把原来基于HTTP请求方式变成了基于TCP实现。就生产结果而言,并没有性能大幅提升,更别提10提升。...例如:当上游服务调用下游服务,下游服务来不及处理时候,可以选择限制上游服务调用。 ?

2.5K20
  • Android 中图片压缩分析(上)

    Android 在之前从某种程度来说使用算是 libjpeg 功能阉割版,压缩图片默认使用是 standard huffman,不是 optimized huffman,也就是说使用默认哈夫曼表...,不是算数编码。...但是,现在 Android 手机性能比以前好很多,所以目前性能往往不是瓶颈,时间和压缩质量反而成为更重要指标了。...八、总结 首先,从 Android 7.0 版本开始,optimize_code 标示已经设置为了 TRUE,也就是默认使用图像生成哈夫曼表,不是使用默认哈夫曼表。...至于这个标志所产生体积差距也没有 5-10 那么大,大约可以在原图基础上缩小 10%~50% 体积,经过修改前后不同 Android 版本实测,数据吻合。

    4K31

    CPU和GPU双低效,摩尔定律之后一万 ——写于TPU版AlphaGo重出江湖之际

    而我,也改变了自己悲观预期,相信在不远将来,“摩尔定律结束之后,性能提升一万”,将不会是科幻,而是发生在我们眼前事实。 这是不是太疯狂了?设计计算机硬件技术宅男们,凭什么做到这一点?...它之所以还能体现出相当优势,是因为在一个软硬件系统中,算法影响远大于硬件架构,硬件架构影响又远大于电路——在电路级别做“通用”付出代价,比起在架构级别做“通用”代价,还是小得多了。...内行人都知道ASIC效能远超FPGA,但仍然有很多人不敢选择ASIC,为什么?自己做ASIC风险太大:周期,投入多,门槛高。一旦芯片做错,就和石头无异,落个血本无归。...现在大家应该相信,在一个足够重要应用领域中,完全可以把优化和定制做到晶体管级别,不是只做到某种现成芯片架构级别。这不但可行,而且必要,因为你不这么做,竞争对手也这么做。...硬件开源时代 摩尔定律通俗表示是:每一美元所能买到电脑性能,将每隔18-24个月翻一以上。过去三十年,拜摩尔定律所赐,我们见证了超过百万倍性价比提升。

    1K70

    为什么 Linux 和 macOS 不需要碎片整理

    ,碎片整理可能不仅对提高读写性能没有显著帮助,还不利于硬件使用寿命; 文件系统 Linux 一般都使用 Ext2、Ext3 和 Ext4 文件系统,今天大多数 Linux 发行版都选择了 Ext4...,然而这种机制并不是没有副作用,在系统断电或者崩溃时可能丢失更多数据。...固态硬盘顺序 I/O 和随机 I/O 在性能上虽然也有差异,但是差距可能在十几倍到几十之间,固态硬盘随机 I/O 延迟也比机械磁盘好几十甚至上千,到现在来看整理固态硬盘上碎片虽然有收益,但是也比较有限...硬件演进和革新深深地影响着上层软件设计,想要设计出通用系统是异常困难,在设计文件系统时如果不考虑底层硬件特性,也就无法充分利用硬件提供性能并得到期望结果。...; 固态硬盘随机读写性能远远好于机械硬盘,随机读写和顺序读写虽然也有性能差异,但是没有机械硬盘差异巨大,频繁碎片整理也影响固态硬盘使用寿命; 到最后,我们还是来看一些比较开放相关问题,有兴趣读者可以仔细思考一下下面的问题

    1.3K30

    尤雨溪回应:Vite 真的比 Turbopack 慢 10

    也有用于冷启动性能 benchmarks,但是由于没有发现冷启动速度是 Vite 10 比较,因此我们只能假设“10 快”是基于 HMR 性能。...在不同硬件性能 因为这是一个涉及 Node.js 和和原生 Rust 部分复合测试,在不同硬件上会有非凡差异。我发布结果是在我 M1 MacBook Pro 上收集。...Vercel benchmark 使用更新模块“浏览器 eval 时间”作为结束时间戳,不是 React 组件重新渲染时间。...该应用程序包含超过30k个模块 Benchmark 只测量热更新模块被评估时间,不是实际应用更改时间。 什么是“公平”比较?...用户更关心端到端 HMR 性能,即从保存到看到反映更改时间,不是理论上“模块评估”时间。当看到“更新速度快 10 ”时,一般用户会考虑前者不是后者。

    1.3K10

    MySQL 基准测试

    不过有时候不需要了解整个应用情况,只需要关注 MySQL 性能,至少在项目初期可以这样做。基于以下情况,可以选择只测试 MySQL: 需要比较不同 schema 或查询性能。...并发性测量完全不同于响应时间和吞吐量,它不像是一个结果,更像是设置基准测试一种属性。「并发性测试通常不是为了测试应用能达到并发度,而是为了测试应用在不同并发下性能」。...2.3.2 基准测试应该运行多长时间 基准测试应该运行足够时间,如果需要测试系统在稳定状态时性能,那么当然需要在稳定状态下测试并观察,如果系统有大量数据和内存,要达到稳定状态可能需要非常时间...很多因素,包括外部压力、性能分析和监控系统、详细日志记录、周期性作业以及其他一些因素,都会影响到测试结果。在每次测试中,修改参数应该尽量少。如果必须要一次修改多个参数,那么可能丢失一些信息。...另外,基于 MySQL 默认配置测试没有什么意义,因为默认配置是基于消耗很少内存极小应用。最后,如果测试中出现异常结果,不要轻易当做坏数据点丢弃。应该认真研究并找到产生这种结果原因。

    82220

    CMU普林斯顿推Mamba新架构,解决致命bug推理速度暴增5

    左右滑动查看 另一位一作Tri Dao介绍了如何利用硬件感知设计应对这一挑战,以及Mamba在语言方面的强大性能。...需要注意是,对于Mamba(和一般SSM),这种方法只能在SRAM中实现扩展状态,不是在主存储器中。...通过选择改进SSM将选择机制纳入模型一种方法是:让影响序列交互参数(例如 RNN 循环动态或 CNN 卷积核)依赖于输入。 算法1和2说明了研究者使用主要选择机制。...实证评估 合成任务:选择性复制 复制任务是用来测试序列模型,特别是循环模型记忆能力经典合成任务。 LTI SSM(线性递归和全局卷积)可以通过只关注时间不是推理数据轻松地解决这个任务。...另外,图5(右)显示,Mamba能够利用更长上下文,甚至长达1M序列,并且其预训练困惑度随着上下文增加而提高。 另一方面,鬣狗DNA模型随着序列长度增加变差。

    1K10

    Python确实比较慢,但我不在乎

    运行时间不再是最昂贵资源。企业目前最为昂贵资源是雇员时间。或者换种方式来讲,最重要是让雇员在规定时间内将程序完成,不是让程序运行速度更快。...但web服务器好处是,你可以无限地负载均衡。换句话说,可以装更多硬件。当然,Python可能比C语言等其他语言需要硬件要多。用硬件来解决CPU问题吧,硬件比你时间可便宜多了。...换句话说,如果我们有两个大O(log n)即log n级函数,但是一个比另一个慢两,这没什么影响,因为随着数据量增加,它们以相同速率减慢。...从这个逻辑出发,你可以认为,凭借“速度”因素为应用程序选择一个编程语言完全属于过早优化,你实际选择是“据说”很快编程语言,没有去测试、没有理解影响速度瓶颈是什么。...选择一个语言/框架/架构可以使你快速开发(例如Python)。不要选择那些仅仅是运行很快技术。 当你的确有性能问题时,找到你程序瓶颈在哪里。 程序瓶颈通常不是CPU或者Python语言本身。

    76540

    Golang适合高并发场景原因分析

    这既得益于软件进步, 也得益于硬件性能提高,现在应该扩展讨论是应该是C10M问题了。 参考资料: 千万级并发实现秘密:内核不是解决方案,而是问题所在!...主进程负责监听和管理连接,具体业务处理都会交给子进程来处理。 ? 种架构最大好处是隔离性,子进程万一crash并不会影响到父进程。...//wenku.baidu.com/view/c527582a453610661ed9f40f.html Apache问题 Apache问题在于服务器性能随着连接数增多变差 关键点:性能和可扩展性并不是一回事...比方说,你升级硬件并且提高处理器速度到原来2。发生了什么?你得到两性能,但你没有得到两处理规模。每秒处理连接可能只达到了6000。你继续提高速度,情况也没有改善。...甚至16性能时,仍然不能处理1万个并发连接。所以说性能和可扩展性是不一样。 问题在于Apache创建一个CGI进程,然后关闭,这个步骤并没有扩展。 为什么呢?

    2.5K81

    比Mojo慢68000,Python性能锅该给GIL吗?

    Mojo 最初设计目标是比 Python 快 35000 ,近期该团队表示,因为结合了动态与静态语言优点,Mojo 一举将性能提升到了 Python 68000 。...鹅厂工程师真实使用感受》 这不是第一个号称比 Python 更快编程语言,相信也不会是最后一个。那么问题来了,为什么是个编程语言就比 Python 快呢?...这里需要明确一点是,从 Python 语言标准角度看,GIL 并不是必须,但 Python 默认实现是 CPython,这是我们去官网下载 Python 时获得默认实现,也是绝大多数 Python...当我们考虑一个技术选择是否合理时候,不能只以当下目光去审视过去,需要回到当时场景中去考虑问题。...硬件风向转变影响了软件开发,开发者们希望 Python 也能提供充分利用多核硬件来实现并行计算能力。

    61540

    灵魂拷问:Kubernetes影响数据库性能吗?

    本篇文章着眼于 Linux 页面大小对数据库性能影响,以及如何优化数据库 Kubernetes 节点。 大多数流行数据库都受益于 Linux 大页面。...下图显示了使用 Linux 大页面对数据库性能影响有多大。 上图显示,对于相同数据库,相同数据,相同工作负载,使用Linux 2MB页面不是4K页面时吞吐量可以提高8。...尽管页面遍历是高效 C 代码,但它比通过 TLB 缓存在硬件中进行映射要慢得多。 为什么 TLB 缓存未命中对数据库很重要 所有数据库最终都需要访问内存中数据进行读取或写入。...Lake CPU L1 CPU 缓存大 256 ,L2 CPU 缓存大 512 减少 TLB 缓存未命中数量可以对数据库性能产生显著积极影响。...不是 TCP 套接字来访问数据库 这种配置意味着没有磁盘 IO 或网络处理,因此工作负载会在 CPU 和/或内存访问上出现瓶颈。

    1.3K40

    2021-03-05:go中,io密集型应用,比如有很多文件io,磁盘io,网络io

    2021-03-05:go中,io密集型应用,比如有很多文件io,磁盘io,网络io,调大GOMAXPROCS,会不会对性能有帮助?为什么? 福哥答案2021-03-05: 这是面试中被问到。...答案2: GOMAXPROCS 用默认,就是CPU硬件线程数目, 对于大部分IO密集应用是不合适。 至少应该配置到硬件线程数目的5以上, 最大256。...补充说明:调度器迟钝不是M迟钝,M也就是操作系统线程,是非常敏感,只要阻塞就会被操作系统调度(除了极少数自旋情况)。但是GO调度器等待一个时间间隔才会行动,这也是为了减少调度器干预次数。...那么,GOMAXPROCS 很大,超过硬件线程8,会不会有开销呢? 答案是,开销是有的,但是远小于Go运行时迟钝调度M来抢夺P导致CPU利用不足开销。...【GO语言】合理配置GOMAXPROCS提升一以上性能 GOMAXPROCS你设置对了吗?

    88110

    为什么 Linux 和 macOS 不需要碎片整理

    ,碎片整理可能不仅对提高读写性能没有显著帮助,还不利于硬件使用寿命; 文件系统 Linux 一般都使用 Ext2、Ext3 和 Ext4 文件系统,今天大多数 Linux 发行版都选择了 Ext4...,然而这种机制并不是没有副作用,在系统断电或者崩溃时可能丢失更多数据。...固态硬盘顺序 I/O 和随机 I/O 在性能上虽然也有差异,但是差距可能在十几倍到几十之间,固态硬盘随机 I/O 延迟也比机械磁盘好几十甚至上千,到现在来看整理固态硬盘上碎片虽然有收益,但是也比较有限...硬件演进和革新深深地影响着上层软件设计,想要设计出通用系统是异常困难,在设计文件系统时如果不考虑底层硬件特性,也就无法充分利用硬件提供性能并得到期望结果。...; 固态硬盘随机读写性能远远好于机械硬盘,随机读写和顺序读写虽然也有性能差异,但是没有机械硬盘差异巨大,频繁碎片整理也影响固态硬盘使用寿命 原文链接:本文转自开源世界,点击访问。

    1.9K10

    基因组大数据计算:CPU和GPU加速方案深度评测

    为什么选择GATKGATK是变异检测流程行业金标准,但它是用Java写,所以不是性能金标准。...图片在功耗方面,c6i.metal 实例中两颗Intel Xeon Platinum 8352M 处理器功率是370W, p4d.24xlarge 实例中八个 NVIDIA A100 Tensor...Parabricks 要达到最佳性能,相较于Intel纯CPU硬件环境需要8.6功率和 3.0 成本,但分析效率相较于Intel 3rd Gen Xeon Platinum 8352M CPU来说...,仅有1.5 性能提升。...图片评测结论Sentieon软件是通过改进算法模型实现性能加速(纯CPU环境,支持X86/ARM),不依赖于昂贵高功耗专用硬件配置(GPU/FPGA),不依赖专有编程语言;同时Sentieon软件针对几乎所有的短读读测序平台进行了优化

    94950

    初创公司如何训练大型深度学习模型

    幸好 OpenAI 有一个由微软提供 NVIDIA V100 GPU 高带宽集群,这让 OpenAI 可以在几个星期不是几年内就能训练 GPT-3。这个集群到底有多大?...32 个 NVIDIA V100s 训练一个模型 为什么我们这个模型训练需要如此时间和如此多 GPU?主要原因有三个: 1....某些操作或自定义损失函数可能不支持较低精度,可能需要大量超参数调整,以使你模型在 FP16 下收敛,而且较低精度也可能影响模型总体精度。...自购硬件 如果你对管理自己硬件感到满意(我们不推荐这么做),那么购买诸如 NVIDIA TITAN X 之类消费级 GPU 是一个比较便宜选择。...成本可能很高,迭代时间也可能很慢,而且如果你不小心,它们严重影响创业进程。

    1.5K10

    出大事了!DPU厂商打起来了

    ) 你可能问:这有什么区别?好吧,特定领域处理器是从头开始研发,允许整个I/O服务在I/O处理器内执行,不是主要在通用内核中运行I/O服务,对数据路径中某些功能进行硬件加速。...在这项测试中,我们比较了最新商用产品,即Pensando DSC-200和NVIDIAConnectX-6 Dx,测试速率为100G。 为什么不是BlueField-2?...对于无法进行硬件加速流量,DSC-200性能比CX-6 Dx好13。这是由于架构性质决定:DSC通过硬件P4引擎来处理包括连接跟踪在内所有带状态防火墙服务。...即使CX-6 Dx存在硬件能力,软件也必须能够对流量进行编程。当软件或硬件不能执行这些功能时,数据包处理就会落在CPU内核上,这与ASIC性能不匹配,因此对性能有负面影响。 图4....其他方案会面临严峻选择:要么忍受性能降低,要么部署新硬件(通常需要18-24个月时间来开发,更不用说验证和部署了)。

    1.1K30

    和TensorFlow一样,英伟达CUDA垄断格局将被打破?

    虽然 TensorFlow 现在也默认使用 Eager 模式,但研究社区和大多数大型科技公司都选择使用 PyTorch。...将英伟达 2016 年 P100 GPU 与最新 H100 GPU 进行比较,我们会发现内存容量增加到原来 5 (16GB → 80GB),FP16 性能增加到 46 (21.2 TFLOPS...这导致许多人担心 H100 利用率很低。A100 需要很多技巧才能绕过内存墙, H100 还需要实现更多技巧。...随着模型架构稳定和来自 PyTorch 2.0、OpenAI Triton 和 MLOps 公司(如 MosaicML)抽象成为默认,芯片解决方案架构和经济性开始成为购买最大驱动力,不是英伟达高级软件提供易用性...此外,代码针对性能进行了更优化,内存带宽和容量要求得到了显著降低。 研究人员们需要不是只支持 GPU 编译器,而是想要支持各种硬件后端。

    95310

    为什么都说C++太复杂?

    作为对比,C语言,截止到C11,关键字是44个 显然,C++比C复杂,其关键字比C多一有余。 ? 但也有观点认为,C++只有在被孤立看待时候,才会觉得复杂性。 设计任何一门语言都是有背景。...C++面向是这样特定用户: 应对各种复杂问题 写出运行相当长时间解决方法 解决方案要满足任意性能要求 工作在不同硬件和操作系统上 和许多已存在系统共存 虽然人们都希望有简单语言,但是人们真正需要是有助于解决问题语言...由于C++相当流行,因此得到结论: 人们愿意为了语言所提供强大表现力和高效率放弃对简单性要求。 既然如此,那为什么要解决问题越复杂,工具就不得不复杂? 原因有三个。...比如 有一些C++提供一种叫片类,如果有某一个对象包括了某种数据结构,那我们可以创建一个指向该数据结构某部分片,给这个片赋值,就会影响原数据结构中被选中那部分。...部分语言假装复杂性不存在选择忽略它,给用户提供了一个干净整洁接口。 如果世界上有些地方不符合他们所设想模型,就干脆直接忽略掉。 还有一些语言则是把复杂性直接扔给用户。

    54510

    10分钟拿下 HashMap「建议收藏」

    现在,我们已经将当前 key-value 存储到了容器中。 为什么选择聊 PUT 方法?...将数组长度扩容为原来2 将原来数组中元素进行重新放到新数组中 需要注意是,每次扩容之后,都要重新计算原来 Entry 在新数组中位置,为什么数组扩容了,Entry 在数组中位置发生变化了呢...这又带来一个新问题,为什么与运算要用 length -1 呢,回看 hashmap初始化时候,数组长度 length必须是2整次幂(如果手动传参数组长度为奇数n,hashMap自动转换长度为距离n...HashTable在不指定容量情况下默认容量为11,HashMap为16,Hashtable不要求底层数组容量一定要为2整数次幂,HashMap则要求一定为2整数次幂。...Hashtable扩容时,将容量变为原来2+1,HashMap扩容时,将容量变为原来2

    28920
    领券