欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++代碼和可執(zhí)行程序在x86和arm上的區(qū)別介紹

 更新時間:2022年07月18日 11:28:29   作者:zhangrelay  
這篇文章主要介紹了C++代碼和可執(zhí)行程序在x86和arm上的區(qū)別,X86和ARM是占據(jù)CPU市場的兩大處理器,各有優(yōu)劣,本文給大家詳細介紹了兩者的區(qū)別,需要的朋友可以參考下

從使用上來看,可執(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會單獨列出來。 

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 主導臺式機、工作站、筆記本電腦和服務器市場,最初的芯片是 16 位,后來的版本是 32 位和 64 位。

ARM 在速度和長電池壽命方面超過了英特爾處理器。 與 Apple 和 VLSI 合作推出了一家新公司 Advanced RISC Machines。 ARM 處理器廣泛用于移動設備。

X86和ARM是占據(jù)CPU市場的兩大處理器,各有優(yōu)劣。

它們可以在某些關鍵方面進行比較,例如它們采用的指令集、功耗、軟件和應用程序。

指令系統(tǒng)

ARM 處理器屬于精簡指令集計算 (RISC) 架構。
指令集架構 (ISA) 定義了處理指令、訪問內存、管理 IO 的方式,并將處理器與程序員連接起來以生成高效的代碼。
RISC 是同類中最新的一種,其中活動被拆分(簡化)為簡單指令,一條指令在一個時鐘周期內執(zhí)行,數(shù)百萬條此類指令在一秒鐘內以更快的速度處理。
雖然它必須執(zhí)行多條指令,但由于其強大的處理器和流水線,整體速度更高。

X86 處理器遵循復雜指令集計算 (CISC) 架構。
復雜的指令在多個時鐘周期中的單個步驟中處理。它使用可用內存在一個步驟中處理多條指令,更注重處理效率。
它使用更多的寄存器來完成多個任務,實現(xiàn)了高吞吐量和性能。

能量消耗

ARM 處理器一次執(zhí)行一條指令,它需要較少的硬件。與其他處理器相比,該處理器使用的寄存器沒有更少。因此,它消耗的電量更少,使用該處理器的設備的電池壽命更長。它還產(chǎn)生較少的熱量。 ARM 使用更多內存來處理多條指令。即使使用 GPU 和其他外圍設備,它也會消耗 5W 的功率。

X86 處理器更注重性能和高吞吐量,它使用更多的寄存器來實現(xiàn)它。因此,這里的功耗和熱量產(chǎn)生更多。 Intel i7 是一款高端處理器,功耗為 130w。
ARM 處理器因其較低的功耗和較長的電池壽命而成為移動設備的首選,這對于為任何應用程序選擇 CPU 至關重要。
始終連接到可靠電源的設備無需擔心功耗,因此臺式機、筆記本電腦和服務器使用 X86 以提高效率,但代價是高功耗。

軟件

配備 ARM Process 的設備可在專為 ARM 開發(fā)的 Android 操作系統(tǒng)上運行。臺式機、筆記本電腦和服務器在為 X86 處理器開發(fā)的 Unix、Linux 和 Windows 等操作系統(tǒng)上運行。
一些接口軟件允許任何操作系統(tǒng)在任何設備上運行,但基于 ARM 的系統(tǒng)在為 X86 開發(fā)的某些操作系統(tǒng)中運行存在限制。
由于 ARM 的流行,微軟發(fā)布了新版本的 windows for ARM。

應用

處理器的選擇取決于計算機將用于的應用程序。對于 IOT 應用,ARM 處理器是正確的選擇,因為嵌入式系統(tǒng)需要連接到所有設備,而且它應該有點小。
如果某些應用需要具有成本節(jié)約動機的單板計算機,ARM 是最佳選擇。對于不需要特殊顯示器的節(jié)儉應用,ARM 是理想的選擇。需要強大平臺 X86 的應用程序是正確的選擇。

到此這篇關于C++代碼和可執(zhí)行程序在x86和arm上的區(qū)別的文章就介紹到這了,更多相關C++ x86和arm區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解C++?的STL迭代器原理和實現(xiàn)

    詳解C++?的STL迭代器原理和實現(xiàn)

    這篇文章主要為大家介紹了C++的STL迭代器原理和實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C++實現(xiàn)LeetCode(17.電話號碼的字母組合)

    C++實現(xiàn)LeetCode(17.電話號碼的字母組合)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(17.電話號碼的字母組合),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • C++ 詳解數(shù)據(jù)結構中的搜索二叉樹

    C++ 詳解數(shù)據(jù)結構中的搜索二叉樹

    搜索二叉樹是一種具有良好排序和查找性能的二叉樹數(shù)據(jù)結構,包括多種操作,本篇只介紹插入,排序(遍歷),和刪除操作,重點是刪除操作比較復雜
    2022-04-04
  • C++中inline函數(shù)詳解

    C++中inline函數(shù)詳解

    inline函數(shù)的定義:在函數(shù)聲明或定義中函數(shù)返回類型前加上關鍵字inline,即可以把函數(shù)指定為內聯(lián)函數(shù)。inline函數(shù)對編譯器而言必須是可見的,以便它能夠在調用點展開該函數(shù)。
    2015-07-07
  • C語言scandir函數(shù)獲取文件夾內容的實現(xiàn)

    C語言scandir函數(shù)獲取文件夾內容的實現(xiàn)

    scandir?函數(shù)用于列舉指定目錄下的文件列表,本文主要介紹了C語言scandir函數(shù)獲取文件夾內容的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 利用QDir實現(xiàn)刪除選定文件目錄下的空文件夾

    利用QDir實現(xiàn)刪除選定文件目錄下的空文件夾

    這篇文章主要為大家詳細介紹了如何利用QDir實現(xiàn)刪除選定文件目錄下的空文件夾功能,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下
    2022-08-08
  • Matlab實現(xiàn)生成箭頭坐標軸詳解

    Matlab實現(xiàn)生成箭頭坐標軸詳解

    這篇文章主要介紹了如何利用Matlab實現(xiàn)生成箭頭坐標軸,為坐標軸增添箭頭,文中的示例代碼講解詳細,對我們學習Matlab有一定幫助,需要的可以參考一下
    2022-03-03
  • c語言中malloc、realloc與calloc 的區(qū)別以及聯(lián)系

    c語言中malloc、realloc與calloc 的區(qū)別以及聯(lián)系

    以下是對c語言中的malloc函數(shù),realloc函數(shù)與calloc函數(shù)的區(qū)別以及它們之間的聯(lián)系進行了介紹,需要的朋友可以過來參考下
    2013-08-08
  • C語言數(shù)據(jù)結構鏈表隊列的實現(xiàn)

    C語言數(shù)據(jù)結構鏈表隊列的實現(xiàn)

    這篇文章主要介紹了C語言數(shù)據(jù)結構鏈表隊列的實現(xiàn)的相關資料,需要的朋友可以參考下
    2017-07-07
  • C 語言指針概念的詳解

    C 語言指針概念的詳解

    這里主要介紹C 語言指針,這里整理了詳細的資料,對指針做了詳細說明及簡單示例代碼幫助大家理解什么是指針,有興趣的小伙伴可以參考下
    2016-08-08

最新評論