programmer既職業道德

153 回覆
7 Like 234 Dislike
2021-02-11 01:27:09
咪又係reinvent the wheel
咪又係來來去去assignment, if then else , while loop, scope,function
改左啲名 ,keyword變左第二個名
我唔覺得有咩值得學或用
2021-02-11 02:22:50
可唔可以講吓點解用4bytes比較好
2021-02-11 02:47:20
其實4個byte同一個bit比較,寫讀個byte會快過一個bit。不過boolean type其實一個byte夠。一般CPU係byte addressable,即係話最小記憶寫讀單位係byte。要寫一個byte一個i指令夠。如果要寫讀一個bit,要用多幾個指令去抽返個bit出嚟會插入去。所以好多programming language嘅boolean type實際都係一個byte。

如果要好慳位,boolean會係一個bit。例如C++嘅bool係一個byte但std::vector<bool>係bit vector嚟。

https://en.cppreference.com/w/cpp/container/vector_bool
2021-02-11 05:05:24
In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits (8 octets) wide.

請教乜唔係一般正常一次讀 64bit = 8byte?
以前 32bit CPU 嗰陣就一次讀 32bit = 4byte
我讀嗰陣係咁理解

利申 畢唔到業
2021-02-11 05:07:59
Also, 64-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on processor registers, address buses, or data buses of that size. 64-bit microcomputers are computers in which 64-bit microprocessors are the norm.

The term 64-bit describes a generation of computers in which 64-bit processors are the norm. 64 bits is a word size that defines certain classes of computer architecture, buses, memory, and CPUs and, by extension, the software that runs on them.
2021-02-11 05:15:46
起左樓主個ON9仔底

14:38
2021-02-11 05:17:40
Please be my code mentor!
2021-02-11 05:19:10
你都傻
糧已袋 工已趕
理撚得你
2021-02-11 06:23:16
首先,要了解由邊度”讀“同點讀法。

一般CPU都有幾層cache,通常CPU指令讀寫其實介於register同L1 cache之間而唔係直接讀memory。一般泛用圖CPU ISA都係byte addressable,如果64-bit register讀1個byte好多時會做zero extension,將 63 到 8 清除。咁嘅情況讀8bit, 16bit,32bit 同 64bit都唔會有performance上分別。

如果CPU要fill up cache write back咁就多數係memory bus width transfer,可以係64-bit或128-bit。但memory bus width同CPU word size無必然關係,32-bit CPU都可以用16-bit 或 64-bit memory bus,要睇memory subsystem例如cache點設計。

泛用圖CPU ISA而唔係byte addressable嘅以我所知得DEC Alpha。令外PS3 上CELL chip嘅SPU都唔係byte addressable但SPU唔係general purpose。
2021-02-11 06:46:54
64-bit usually mean native word size of integer/pointer type. For example, what you can add, subtract, or compare in a single instruction. The ISA only defines a software abstraction. How this is actually implemented can varies greatly.

Also modern CPUs support other data types than integer like floating point and vector types. These can have very different data size.

x86_64:
integer: 64-bit <--- word size
x87: floating point: 80-bit
SSE: 128-bit
AVX: 256-bit
AVX512: 512-bit

To support these types, internally a CPU can handle data wider than the integer/pointer size. For example, you may find a 64-bit CPU can do 2 128-bit read and 1 128-bit write in the same cycle from the L1 data cache because the same L1 interface is also used for SIMD.
2021-02-11 07:17:24
請讓我補充詳細說明我講緊既case
為左memory alignment bool後面會有padding先再有下一個field
struct{
    bool a;
    int b;
}

a本身加上padding 係常見32bit platform 總共用4 byte 我講緊呢點
用字方面唔係超級嚴謹 but hey this post is about “wasting bit” not language lawyer
2021-02-11 08:36:04
請讓我再補充

一般CPU都有data alignment。例如32-bit data嘅naturally aligned address係可以除得盡4,16-bit data嘅aligned address係除得盡2,8-bit (byte)data係任何address都一定aligned。如果data mis-aligned,memory access可能有performance penalty因為hardware有機會要用多過一個memory access。舊嘅RISC CPU甚至會有alignment exception會crash program。現代高效能CPU一般唔過cache line boundary(32b/64b)misalignment都唔會有penalty。

由於alignment關係,一般structure嘅data field一般都係naturally aligned,而且成個struct會跟裡面最大個data alignment。例如個struct最大係16-bit data,咁個struct size一定會係2嘅倍數。如果最大係64-bit,咁個struct size係8嘅倍數。

要data field align就要加padding,但padding同之後個field嘅alignment有關。
struct{
    bool a;
    bool a2;
    int b;
}

如果int係32-bit,咁呢個例子同手巴個struct一樣咁大,a同a2中間唔需要padding,但a2同b間要加兩個byte嘅padding space。
2021-02-11 09:51:29
inline int findRemainder(int x, int q) { return x%q; }
你D道德去左邊
2021-02-11 10:10:09
其實ascii唔駛8bit
係古早telecom standard係有7bit ascii
7個bit 一個character

但係你個字串唔夾個size最後都會浪費一兩bit

咁又咁講,你為左每個character 用少一bit,而寫一段code encode/decode 7 bit ascii, 又會浪費左你個cpu
到最後所有programmer都係浪費

結論:樓主成篇都係9up
2021-02-11 10:16:38
save 個陣將數字轉做 text 入 mysql db
拎出黎再 parseInt
2021-02-11 10:18:12
呢啲位置三四萬起跳, 有邊個唔想做
2021-02-11 10:24:19
都係睇餸食飯
CODE BASE垃撚圾既就是鳩但啦
行到郁到 REQUIREMENT齊就算

GREEN FIELD PROJECT就可以慢慢雕
最緊要快, UX夠好 咩慳位慳RESOURCE 哂鳩氣
CPU/RAM/HARD DISK 呢啲有錢有計傾
天下武功 唯快不破

EMBEDDED SYSTEM就真係要慳位啦
落到去MEMORY ALLOCATION果啲自己逐BIT TUNE啦
2021-02-11 10:25:13
道德建基於有返一定既智慧
2021-02-11 10:26:42
其他D潔癖撚搞Optimize係好反智
依家D硬件比以前勁左好多,做唔做Optimize唔會差太遠
同埋code係要比自己同人地都容易睇得明同maintain,唔係比個機器容易睇
仲有有時間既都同我de晒d bug先啦,programme又未寫完bug又未de就走走搞Optimize?
2021-02-11 11:06:09
Bug 通常都收埋左係係D Unoptimized code 入面的
2021-02-11 11:24:50
CSCI3150......
2021-02-11 11:44:24
係叫c compiler
2021-02-11 14:09:22
直頭係要一粒一粒飯咁食
2021-02-11 19:57:05
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞