網(wǎng)站首頁 編程語言 正文
從使用上來看,可執(zhí)行程序肯定是不通用的。
armx86
生成的可執(zhí)行程序大小都有差異呢。?
但是,如果源碼編譯,如果環(huán)境類似,相同的源碼可以直接移植。
例如:如下程序??donut.cpp
#include <stdio.h>
#include <math.h>
#include <cstring>
#include <unistd.h>
int main() {
float A = 0, B = 0;
float i, j;
int k;
float z[1760];
char b[1760];
printf("\x1b[2J");
for (;;) {
memset(b, 32, 1760);
memset(z, 0, 7040);
for (j = 0; j < 6.28; j += 0.07) {
for (i = 0; i < 6.28; i += 0.02) {
float c = sin(i);
float d = cos(j);
float e = sin(A);
float f = sin(j);
float g = cos(A);
float h = d + 2;
float D = 1 / (c * h * e + f * g + 5);
float l = cos(i);
float m = cos(B);
float n = sin(B);
float t = c * h * g - f * e;
int x = 40 + 30 * D * (l * h * m - t * n);
int y = 12 + 15 * D * (l * h * n + t * m);
int o = x + 80 * y;
int N = 8 * ((f * e - c * d * g) * m - c * d * e - f * g - l * d * n);
if (22 > y && y > 0 && x > 0 && 80 > x && D > z[o]) {
z[o] = D;
b[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];
}
}
}
printf("\x1b[H");
for (k = 0; k < 1761; k++) {
putchar(k % 80 ? b[k] : 10);
A += 0.00004;
B += 0.00002;
}
usleep(30000);
}
return 0;
}
效果一致。?
編譯過程都是:
g++ donut.cpp -o donut
生成文件大小:
arm→13.5 KB (13,856.00 字節(jié))
x86→?16.0 KB (16,384 字節(jié))
很多軟件都支持多平臺,但是類似如下:
這些都是x86案例,并不支持arm。
支持arm會單獨(dú)列出來。?
ARM 與 X86 的概述
X86 指 Intel 處理器家族,從 8086 開始,隨后發(fā)布 80186、80286、80386、80486、Pentium 和 Xeon 等。X86 中的 86 表示其早期處理器的最后 2 位數(shù)字。
ARM 最初由 ARM Holdings 以 Acorn RISC Machine 起家,開發(fā)了 ARM、ARM2 32 位處理器,其晶體管數(shù)量最少,功耗/散熱更低。 X86 主導(dǎo)臺式機(jī)、工作站、筆記本電腦和服務(wù)器市場,最初的芯片是 16 位,后來的版本是 32 位和 64 位。
ARM 在速度和長電池壽命方面超過了英特爾處理器。 與 Apple 和 VLSI 合作推出了一家新公司 Advanced RISC Machines。 ARM 處理器廣泛用于移動設(shè)備。
X86和ARM是占據(jù)CPU市場的兩大處理器,各有優(yōu)劣。
它們可以在某些關(guān)鍵方面進(jìn)行比較,例如它們采用的指令集、功耗、軟件和應(yīng)用程序。
指令系統(tǒng)
ARM 處理器屬于精簡指令集計(jì)算 (RISC) 架構(gòu)。
指令集架構(gòu) (ISA) 定義了處理指令、訪問內(nèi)存、管理 IO 的方式,并將處理器與程序員連接起來以生成高效的代碼。
RISC 是同類中最新的一種,其中活動被拆分(簡化)為簡單指令,一條指令在一個時鐘周期內(nèi)執(zhí)行,數(shù)百萬條此類指令在一秒鐘內(nèi)以更快的速度處理。
雖然它必須執(zhí)行多條指令,但由于其強(qiáng)大的處理器和流水線,整體速度更高。
X86 處理器遵循復(fù)雜指令集計(jì)算 (CISC) 架構(gòu)。
復(fù)雜的指令在多個時鐘周期中的單個步驟中處理。它使用可用內(nèi)存在一個步驟中處理多條指令,更注重處理效率。
它使用更多的寄存器來完成多個任務(wù),實(shí)現(xiàn)了高吞吐量和性能。
能量消耗
ARM 處理器一次執(zhí)行一條指令,它需要較少的硬件。與其他處理器相比,該處理器使用的寄存器沒有更少。因此,它消耗的電量更少,使用該處理器的設(shè)備的電池壽命更長。它還產(chǎn)生較少的熱量。 ARM 使用更多內(nèi)存來處理多條指令。即使使用 GPU 和其他外圍設(shè)備,它也會消耗 5W 的功率。
X86 處理器更注重性能和高吞吐量,它使用更多的寄存器來實(shí)現(xiàn)它。因此,這里的功耗和熱量產(chǎn)生更多。 Intel i7 是一款高端處理器,功耗為 130w。
ARM 處理器因其較低的功耗和較長的電池壽命而成為移動設(shè)備的首選,這對于為任何應(yīng)用程序選擇 CPU 至關(guān)重要。
始終連接到可靠電源的設(shè)備無需擔(dān)心功耗,因此臺式機(jī)、筆記本電腦和服務(wù)器使用 X86 以提高效率,但代價是高功耗。
軟件
配備 ARM Process 的設(shè)備可在專為 ARM 開發(fā)的 Android 操作系統(tǒng)上運(yùn)行。臺式機(jī)、筆記本電腦和服務(wù)器在為 X86 處理器開發(fā)的 Unix、Linux 和 Windows 等操作系統(tǒng)上運(yùn)行。
一些接口軟件允許任何操作系統(tǒng)在任何設(shè)備上運(yùn)行,但基于 ARM 的系統(tǒng)在為 X86 開發(fā)的某些操作系統(tǒng)中運(yùn)行存在限制。
由于 ARM 的流行,微軟發(fā)布了新版本的 windows for ARM。
應(yīng)用
處理器的選擇取決于計(jì)算機(jī)將用于的應(yīng)用程序。對于 IOT 應(yīng)用,ARM 處理器是正確的選擇,因?yàn)榍度胧较到y(tǒng)需要連接到所有設(shè)備,而且它應(yīng)該有點(diǎn)小。
如果某些應(yīng)用需要具有成本節(jié)約動機(jī)的單板計(jì)算機(jī),ARM 是最佳選擇。對于不需要特殊顯示器的節(jié)儉應(yīng)用,ARM 是理想的選擇。需要強(qiáng)大平臺 X86 的應(yīng)用程序是正確的選擇。
原文鏈接:https://blog.csdn.net/ZhangRelay/article/details/125813014
相關(guān)推薦
- 2023-03-26 CSS填充和寬高詳解_基礎(chǔ)教程
- 2023-07-10 Python使用MongoDB數(shù)據(jù)庫
- 2022-12-19 Pytorch相關(guān)知識介紹與應(yīng)用_python
- 2022-04-28 深入淺出理解C語言指針的綜合應(yīng)用_C 語言
- 2022-02-03 ionic 富文本編輯樣式后,前臺不能回顯樣式
- 2023-04-06 Pytorch中關(guān)于model.eval()的作用及分析_python
- 2022-11-16 創(chuàng)建Go工程化項(xiàng)目布局詳解_Golang
- 2023-01-12 Python讀取mat(matlab數(shù)據(jù)文件)并實(shí)現(xiàn)畫圖_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支