Re[18]: [СПб] Математик криптограф 500$-5000$
От: reversecode google
Дата: 08.03.18 20:37
Оценка:
забыли еще добавить
7. а еще Гоу не нужен

у него такой уровень избыточности что .. быстрым в производительности он может быть разве что в сравнении с питоном
но не С/C++

вот взял с компилятора ГО файл gofmt
там открыл функцию в IDA
https://pastebin.com/ysDbcSMU
.text:00000000004ED6A0 ; void __cdecl encoding_binary___littleEndian__Uint16(encoding_binary_littleEndian *.this, __uint8 b, uint16 _r1)
.text:00000000004ED6A0                 public encoding_binary___littleEndian__Uint16
.text:00000000004ED6A0 encoding_binary___littleEndian__Uint16 proc near
.text:00000000004ED6A0
.text:00000000004ED6A0 var_8           = qword ptr -8
.text:00000000004ED6A0 .this           = qword ptr  8
.text:00000000004ED6A0 b               = __uint8 ptr  10h
.text:00000000004ED6A0 _r1             = word ptr  28h
.text:00000000004ED6A0
.text:00000000004ED6A0                 mov     rcx, fs:0FFFFFFFFFFFFFFF8h
.text:00000000004ED6A9                 sub     rsp, 8
.text:00000000004ED6AD                 mov     [rsp+8+var_8], rbp
.text:00000000004ED6B1                 lea     rbp, [rsp+8+var_8]
.text:00000000004ED6B5                 mov     rbx, [rcx+20h]
.text:00000000004ED6B9                 test    rbx, rbx
.text:00000000004ED6BC                 jnz     short loc_4ED6F7
.text:00000000004ED6BE
.text:00000000004ED6BE loc_4ED6BE:                             ; CODE XREF: encoding_binary___littleEndian__Uint16+5F↓j
.text:00000000004ED6BE                                         ; encoding_binary___littleEndian__Uint16+64↓j
.text:00000000004ED6BE                 mov     rax, [rsp+8+.this]
.text:00000000004ED6C3                 test    rax, rax
.text:00000000004ED6C6                 jz      short loc_4ED6F0
.text:00000000004ED6C8                 mov     rax, [rsp+8+b.len]
.text:00000000004ED6CD                 cmp     rax, 1
.text:00000000004ED6D1                 jbe     short loc_4ED6E9
.text:00000000004ED6D3                 mov     rax, [rsp+8+b.array]
.text:00000000004ED6D8                 movzx   eax, word ptr [rax]
.text:00000000004ED6DB                 mov     [rsp+8+_r1], ax
.text:00000000004ED6E0                 mov     rbp, [rsp+8+var_8]
.text:00000000004ED6E4                 add     rsp, 8
.text:00000000004ED6E8                 retn
.text:00000000004ED6E9 ; ---------------------------------------------------------------------------
.text:00000000004ED6E9
.text:00000000004ED6E9 loc_4ED6E9:                             ; CODE XREF: encoding_binary___littleEndian__Uint16+31↑j
.text:00000000004ED6E9                 call    runtime_panicindex
.text:00000000004ED6EE ; ---------------------------------------------------------------------------
.text:00000000004ED6EE                 ud2
.text:00000000004ED6F0 ; ---------------------------------------------------------------------------
.text:00000000004ED6F0
.text:00000000004ED6F0 loc_4ED6F0:                             ; CODE XREF: encoding_binary___littleEndian__Uint16+26↑j
.text:00000000004ED6F0                 call    runtime_panicwrap
.text:00000000004ED6F5 ; ---------------------------------------------------------------------------
.text:00000000004ED6F5                 ud2
.text:00000000004ED6F7 ; ---------------------------------------------------------------------------
.text:00000000004ED6F7
.text:00000000004ED6F7 loc_4ED6F7:                             ; CODE XREF: encoding_binary___littleEndian__Uint16+1C↑j
.text:00000000004ED6F7                 lea     rdi, [rsp+8+.this]
.text:00000000004ED6FC                 cmp     [rbx], rdi
.text:00000000004ED6FF                 jnz     short loc_4ED6BE
.text:00000000004ED701                 mov     [rbx], rsp
.text:00000000004ED704                 jmp     short loc_4ED6BE
.text:00000000004ED704 encoding_binary___littleEndian__Uint16 endp


и нашел туже функцию в самом языке
https://golang.org/src/encoding/binary/binary.go
func (littleEndian) PutUint16(b []byte, v uint16) {
    _ = b[1] // early bounds check to guarantee safety of writes below
    b[0] = byte(v)
    b[1] = byte(v >> 8)
}



ни С ни С++ такой избыточности бы не создали
о каких тогда серверах и прочих можно говорить в сравнении с С/C++ ?
разве что в скорости стартапов для быстрого старта, а дальше нанимать плюсовиков что бы это переписывали на нормальный язык
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.