Skip to main content

Posts

Showing posts from November, 2022

Rust Cargo release build is not the fastest

By default, cargo build will build a debug binary at ./target/debug/filename, which is helpful for development/debug but without many binary optimizations, thus, runs slow. When build with cargo build --release , it will build an optimized binary, which is ready for production: --release Build artifacts in release mode, with optimizations But it still not the fastest it can be. Cargo profiles Cargo has 4 builtin profiles: dev, release, test, and bench https://doc.rust-lang.org/cargo/reference/profiles.html which pre-defined build options. User can customize them in Cargo.toml, e.g: [profile.dev] opt-level = 1 debug = true LTO - Link time optimizations https://doc.rust-lang.org/cargo/reference/profiles.html#lto Default profile.release sets lto = false. [profile.release] opt-level = 3 debug = false split-debuginfo = '...' # Platform-specific. debug-assertions = false overflow-checks = false lto = false panic = 'unwind' incremental = false...

Học Rust với gdb

Dùng Rust viết ví dụ để học gdb. gdb là gì $ whatis gdb gdb (1) - The GNU Debugger GDB là 1 debugger trên dòng lệnh, mặc dù ít biết tới nhưng nó có cả giao diện TUI - giống như đồ họa trên text. gdb là debugger lừng danh luôn dùng để debug code C. Ngoài C, gdb hỗ trợ nhiều ngôn ngữ bao gồm cả Rust/Go... What Languages does GDB Support? GDB supports the following languages (in alphabetical order): Ada Assembly C C++ D Fortran Go Objective-C OpenCL Modula-2 Pascal Rust gdb hỗ trợ các ngôn ngữ compile thành binary, còn Python có sẵn pdb cũng tương tự. Cài gdb trên Ubuntu 20.04 $ sudo apt install -y gdb Cài Rust trên Ubuntu 20.04 $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh theo https://www.rust-lang.org/tools/install Tạo chương trình Rust đơn giản với stack và heap Tạo project mới: $ cargo new gdbplay Created binary (application) `gdbplay` package Sửa nội dung file gdbplay/src/m...

Cái giá của 2 giờ đầu - hơn 60k

Khi đi làm, giữa muôn vàn công nghệ phức tạp xung quanh, một người làm đủ "cứng" có thể ứng biến dễ dàng: muốn tạo 1 máy ảo và cấu hình mạng dùng terraform ? copy file .tf đã tồn tại và sửa một chút cho phù hợp yêu cầu. muốn deploy 1 service với Salt/Ansible ? copy các file yaml/role có sẵn rồi sửa một chút cho phù hợp với yêu cầu. muốn deploy 1 service trên Kubernetes ? copy file .yaml có sẵn trong "mono repo" của công ty rồi sửa lại chút chút cho phù hợp yêu cầu. muốn thêm 1 endpoint cho website Django/flask ? copy function đã có trong cùng file và sửa lại một chút cho hợp với yêu cầu. muốn thêm 1 alert trên Prometheus/Alertmanager ? copy vài dòng trong file yaml cấu hình rồi sửa lại một chút cho phù hợp yêu cầu. ... Mất bao lâu để "làm chủ", "master" các công nghệ bôi đậm nói trên? Không hề ít thời gian và công sức! Vậy làm sao mọi lập trình viên/devops ngày nay đều yêu cầu phải biết cơ bản những thứ này? làm sao họ làm được? đi đườ...

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG