【隨身WiFi】隨身WiFi Debian系統優化教程

0.操作前必看

本教程基于Debian系統進行優化,有些操作對隨身WiFi來說可能會帶來負優化,根據需要選擇。

所有操作需要在root用戶環境下運行,否則都要加sudo

隨身wifi Debian系統,可以去某安的隨聲WiFi模塊自行搜索刷機

點贊,關注,打賞

點贊,關注,打賞

點贊,關注,打賞


1.常用工具推薦

1.1 SSH客戶端

一般系統編譯了ssh服務端,所以只需要用客戶端連接就行

客戶端推薦 Xshell,官網下載地址

XSHELL - NetSarang Website

1.2 Linux常用工具集

在玩隨身WIFI時,或多或少會使用到下面一些工具

  • curl:用于在命令行中傳輸數據的工具。
  • wget:用于下載文件的命令行工具。
  • nano:一個簡單易用的文本編輯器。
  • vim:一個強大的文本編輯器,常用于程序開發和系統配置。
  • busybox:一個適用于嵌入式系統和單片機的工具集,包含了大部分基本的Linux工具。
  • iptables:用于配置Linux防火墻的工具。
  • iproute2:用于管理網絡連接和路由的工具。
  • cpufrequtils:用于管理CPU頻率的工具。

用apt 、命令安裝,自己選擇要安裝的工具

apt update && apt install xxx0 xxx1 xxx2

2.創建swap/zram虛擬內存

2.1 創建swap

創建一個512M的swapfile并啟用,充實隨身wifi不到512M的可憐內存。由于沒有多余的閃存空間,再分區會導致多余的麻煩,所以用創建swapfile文件的方式,而不用swap分區

swapfile文件地址任意,我選擇在根目錄/

dd if=/dev/zero of=/swapfile bs=1M count=512
chmod 600 /swapfile
mkswap /swapfile
swapon -p 1 /swapfile

創建之后,馬上生效。下次開機生效需要在/etc/rc.local文件添加swapon命令

#nano /etc/rc.local
swapon /swapfile

至于調整swap使用積極性 vm.swappiness=100,在第9步有配置

2.2 臨時創建zram

創建一個256m的zram分區,先查看內核支不支持,是否加載了zram模塊,如果輸出結果包含zram,則表示Zram模塊已加載。

lsmod | grep zramlsmod | grep zram

加載zram內核模塊,并指定設備數量為1。創建一個256MB大小的zram設備,并使用lz4算法(這算法最快)進行壓縮,同時將數據分成4個流。將zram設備格式化為swap分區,啟用zram設備,并設置優先級。(看不懂沒關系,直接用命令就行)

modprobe zram num_devices=1
zramctl --find --size 256M --algorithm lz4 --streams 4
mkswap /dev/zram1
swapon -p 0 /dev/zram1

2.3 永久創建zram分區

網上配置zram的教程挺少的。有很多種方法里,不同內核不太兼容。所以用創建配置服務方式兼容性最強

為了方便配置和管理,我們可以將 ZRAM 配置編寫成一個服務腳本,來方便隨時啟用和禁用:

使用你習慣的文本編輯器(如 vim 或 nano),創建一個zram.service服務配置文件:

nano /etc/systemd/system/zram.service

將以下配置并粘貼到文件中:

[Unit]
Description=ZRAM Configuration
After=local-fs.target[Service]
Type=oneshot
ExecStart=/usr/sbin/modprobe zram
ExecStart=/bin/sh -c 'echo 0.2G > /sys/block/zram0/disksize'
ExecStart=/bin/sh -c 'mkswap /dev/zram0'
ExecStart=/bin/sh -c 'swapon /dev/zram0'
RemainAfterExit=yes[Install]
WantedBy=multi-user.target

根據你 Ubuntu 系統的物理內存大小,在ExecStart行中調整需要的 ZRAM 大小,一般設置為 RAM 大小的 50%-100%。

使用以下命令啟動并啟用 ZRAM 服務:

systemctl daemon-reload # 重新載入服務配置文件
systemctl enable zram.service # 啟用 zram 服務
systemctl start zram.service # 啟動 zram 服務

2.4?常用命令補充

  • swapon -a #啟用所有swap分區。
  • swapoff -a #禁用所有swap分區。
  • swapon --show 或 swapon -s #顯示當前系統中已啟用的swap分區。
  • swapon -p 或 swapon --priority #將指定的swap分區設置為指定的優先級。優先級越高的swap分區,系統越傾向于將內存數據轉移到該分區中。
  • free -m #查看當前內存使用情況

3. CPU調優

3.1 臨時調度調優

410支持的調度策略 userspace, conservative, ondemand, powersave, performance, schedutil

其中schedutil是比較優秀的調度,我們使用cpufrequtils工具設置調度策略

安裝cpufrequtils(之前已經安裝了就不管)

apt install cpufrequtils

查看cpu信息,打印所有信息(這里只展示410其中一個核心作為示例)

cpufreq-info
root@4G-wifi:~# cpufreq-info 
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:driver: cpufreq-dtCPUs which run at the same hardware frequency: 0 1 2 3CPUs which need to have their frequency coordinated by software: 0 1 2 3maximum transition latency: 0.97 ms.hardware limits: 400 MHz - 2.10 GHzavailable frequency steps: 400 MHz, 800 MHz, 1000 MHz, 1.10 GHz, 1.20 GHz, 1.30 GHz, 1.40 GHz, 1.50 GHz, 1.60 GHz, 1.70 GHz, 1.80 GHz, 1.90 GHz, 2.00 GHz, 2.10 GHzavailable cpufreq governors: userspace, conservative, ondemand, powersave, performance, schedutilcurrent policy: frequency should be within 400 MHz and 2.10 GHz.The governor "schedutil" may decide which speed to usewithin this range.current CPU frequency is 1.42 GHz (asserted by call to hardware).cpufreq stats: 400 MHz:90.04%, 800 MHz:3.05%, 1000 MHz:0.54%, 1.10 GHz:0.15%, 1.20 GHz:0.12%, 1.30 GHz:0.12%, 1.40 GHz:0.34%, 1.50 GHz:0.18%, 1.60 GHz:0.29%, 1.70 GHz:0.35%, 1.80 GHz:0.35%, 1.90 GHz:0.29%, 2.00 GHz:0.52%, 2.10 GHz:3.68%  (403860)
  • cpufreq-info -f?查看當前CPU頻率。
  • cpufreq-info -p?查看當前CPU模式。
  • cpufreq-info -g?查看當前支持的CPU運行模式。

我用的超頻版Debian系統,cpu頻率支持 400MHz - 2.1GHz

設置cpu調度策略為schedutil

cpufreq-set -g schedutil

也可以通過cpufreq-info -p查看當前CPU模式。

cpufreq-info -p

3.2 臨時CPU頻率調優

上面說到當前系統的cpu頻率支持 400MHz - 2.1GHz(實際得看你刷的固件)。可以自定義頻率范圍,內核會根據你選擇的調度策略控制cpu運行頻率,我的建議是保持固件默認,想省點電可以降低最高頻率。

cpufreq-set -d <最低頻率> -u <最高頻率>
#例如 cpufreq-set -d 0.5GHz -u 2GHz

?通過cpufreq-info -p查看當前CPU模式,?

cpufreq-info -p

也可以固定頻率,那原先調度策略就會失效,自動設置為userspace,cpu當前頻率固定為設置值

cpufreq-set -f <頻率> 
#例如 cpufreq-set -d 1.0GHz

?通過cpufreq-info -f查看當前CPU頻率,?

cpufreq-info -f

這里提一嘴,-c這個參數,指定cpu序號,對410好像不生效,會變成全局設置

3.3 永久生效配置

上面兩步都可以馬上生效,重啟后失效,想要重啟后仍然生效,則需要如下配置

編輯/etc/default/cpufrequtils文件(如果文件不存在,則創建它),設置你想要的最大和最小頻率:

nano /etc/default/cpufrequtils

添加或修改以下行:

GOVERNOR="schedutil" # 或者 "powersave", "ondemand" 等
MAX_SPEED="21000000" # 最大頻率,單位是Hz,例如3000000表示3.0 GHz
MIN_SPEED="4000000" # 最小頻率,單位是Hz,例如1000000表示1.0 GHz

保存文件后,重啟驗證配置是否生效,不驗證也可以

4. 自定義登錄信息

4.1 登錄前打印

修改/etc/issue,登錄前打印信息

nano /etc/issue

?

4.2 登錄后打印

修改/etc/motd,登錄后打印信息

nano /etc/motd

?

4.3 登錄時系統動態信息打印

修改?/etc/update-motd.d/10-uname

nano /etc/update-motd.d/10-uname
#!/bin/sh
# uname -snrvm
echo "\033[47m \033[30m-------------------------- 系統信息 --------------------------\033[37m \033[40m"
echo "操作系統: $(echo "$(sed 's/\\n//g;s/\\l//g' /etc/issue)")" || echo "操作系統: $(uname -o)"
echo "主機名稱: $(hostname)"
echo "內核版本: $(uname -r)"
echo "軟件包數量: $(dpkg --list | wc -l)"
echo "CPU架構: $(lscpu| awk '/Architecture:/ {print $NF}')"
echo "CPU核心數: $(lscpu| awk '/^CPU/ {print $2}')"
echo "核心線程數: $(lscpu| awk '/Thread per core:/ {print $NF}')"
echo "CPU溫度: $(cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null | awk '{print int($1/1000)}')°C"
echo ""
if output=$(mmcli -m 0 2>&1) && [ -n "$output" ]; then
get_modem() { mmcli -m 0 2>/dev/null | grep -oiP "(?<=$1\s).*" | awk 'NR==1{print}'; };
echo ""
echo "\033[47m \033[30m-------------------------- Modem信息 --------------------------\033[37m \033[40m"
[ -n "$(get_modem "own:")" ] && echo "SIM號碼: $(get_modem "own:" | sed 's/^86//')"
[ -n "$(get_modem "operator name:")" ] && echo "運營商: $(get_modem "operator name:" | sed 's/CHN-UNICOM/中國聯通/g; s/UNICOM/中國聯通/g; s/CMCC/中國移動/g; s/CT/中國電信/g')"
[ -n "$(get_modem "state:")" ] && echo "SIM狀態: $(get_modem "state:")"
[ -n "$(get_modem "power state:")" ] && echo "數據開關: $(get_modem "power state:")"
[ -n "$(get_modem "access tech:")" ] && echo "訪問類型: $(get_modem "access tech:")"
[ -n "$(get_modem "signal quality:")" ] && echo "信號強度: $(get_modem "signal quality:")"
[ -n "$(get_modem "equipment id:")" ] && echo "設備ID: $(get_modem "equipment id:")"
fiip_address=$(ip addr show | grep -w inet | awk '{print $2}' | cut -d/ -f1)
echo ""
if [ -n "$ip_address" ]; then
echo "\033[47m \033[30m-------------------------- 網絡信息 --------------------------\033[37m \033[40m"
echo "內網IP:"
echo "$ip_address"
curl_output=$(curl -s -m 6 cip.cc 2>&1 | sed '/^$/d') && [ -n "$curl_output" ] && {
echo "公網IP:"
echo "$curl_output"; };
fiinterfaces=$(ifconfig | awk '/^[^ ]/ && !/lo/ {gsub(/:/,"");print $1}')
echo ""
if [ -n "$interfaces" ]; then
echo "\033[47m \033[30m-------------------------- 接口信息 --------------------------\033[37m \033[40m"
echo "網絡接口: "$interfaces""
convert_unit() { size=$1; awk 'BEGIN{ printf "%.2f %s", ('$size'/1024/1024), "MB" }'; }
for interface in $interfaces; do
get_bytes() { ifconfig $interface | grep -E "$1 .*bytes|$1 bytes" | sed -E "s/.*$1 bytes:([0-9]+).*/\1/;s/.*bytes ([0-9]+) .*/\1/"; }
rx=$(get_bytes RX)
tx=$(get_bytes TX)
[ $rx -gt 0 -o $tx -gt 0 ] && echo "$interface 接收: $(convert_unit $rx) 發送: $(convert_unit $tx)"
done;fi
echo ""
echo "\033[47m \033[30m-------------------------- 內存信息 --------------------------\033[37m \033[40m"
mmc_info=$(cat /sys/class/mmc_host/mmc0/mmc0\:0001/life_time)
[ -n "$mmc_info" ] && echo "內存壽命: $mmc_info"
echo "硬件內存: $(free -m | awk 'NR==2{printf "%s/%sMiB (%.2f%%)\n", $3,$2,$3*100/$2 }')"
swap_info=$(free -m | awk 'NR==3{printf "%s/%sMiB (%.2f%%)\n", $3,$2,$3*100/$2}')
[ ! -z "$swap_info" ] && echo "虛擬內存: $swap_info" && sudo swapon --show
echo ""
echo "\033[47m \033[30m-------------------------- 磁盤信息 --------------------------\033[37m \033[40m"
df -h
echo ""
echo "\033[47m \033[30m-------------------------- 運行信息 --------------------------\033[37m \033[40m"
uptime=$(uptime | sed 's/up/已運行:/g; s/mins/分鐘/g; s/min/分鐘/g; s/days/天/g; s/day/天/g; s/users/個登錄用戶/g; s/user/個登錄用戶/g; s/load average/平均負載/g')
echo "本地時間: $uptime"
echo ""

5. 清除不需要的軟件包與日志文件

5.1 清理系統中不需要的軟件包和日志文件

使用命令

apt-get autoremove && apt-get clean && apt-get autoclean && journalctl --vacuum-size=5M
  • apt-get autoremove:卸載已經不再需要的軟件包。這個命令會移除已經安裝但是沒有被其他軟件所依賴的軟件包。
  • apt-get clean:清理已經下載的軟件包文件。這個命令會刪除已經下載并安裝的軟件包的本地緩存文件,以釋放磁盤空間。
  • apt-get autoclean:清理過期的軟件包。這個命令會刪除已經過期的軟件包,但是保留最新的軟件包版本的本地緩存文件,以便以后重新安裝。
  • journalctl --vacuum-size=5M:縮減系統日志文件。這個命令會刪除舊的系統日志文件,只保留最近的5M大小的日志文件。

6.磁盤優化

6.1?TRIM優化

ssd的技術,我們的隨身wifi的閃存也支持,能讓ssd保持高速寫入性能。

TRIM優化,一般不需要手動執行,內核會一周執行一次,通過命令可查看

systemctl status fstrim.timer

可以手動執行,也可以放在/etc/rc.local文件里,讓他開機運行一次。

fstrim -v /

6.2 修復ext4文件系統只讀

有時docker守護進程跑不起來,那可能是閃存寫保護了。

mount -l 

查看掛載情況,如果是/dev/mmcblk0p14 是(ro,...),不是(rw,...)就是寫保護了

嘗試重新掛載為可寫狀態,失敗的話就繼續往下看

mount -w /dev/mmcblk0p14

有的體質差的在拔插隨身wifi后,重啟后磁盤就寫保護了。特別是在有swapfile文件時,會出現這種情況,這是后就要使用e2fsck命令修復,并重啟隨身WiFi

e2fsck -y /dev/mmcblk0p14
reboot

7.自動識別并切換usbhub模式

7.1 自動識別是否外接usbhub,并切換模式

修改/etc/rc.local,如果接入usb就會切換usb主機模式,否則就是默認

nano /etc/rc.local
# usb auto otg
sleep 3
grep 0 /sys/kernel/debug/usb/ci_hdrc.0/device | grep speed
if [ $? -eq 0 ]
then
echo host > /sys/kernel/debug/usb/ci_hdrc.0/role
fisleep 25 && /etc/init.d/network restart
exit 0

8.修改LED燈配置

8.1 修改led配置

查看當前LED的行為

可以通過查看/sys/class/led/<名字>/trigger文件來了解當前LED的行為。例如,查看綠色LED的行為,可以使用命令

cat /sys/class/leds/green:internet/trigger

當前綠燈觸發器選擇為[none],可以設置成其他的

?修改LED的行為?

通過向trigger文件寫入新的行為來修改LED的行為。例如,將綠色LED設置為常量狀態,可以使用命令

echo default-on > /sys/class/leds/green:internet/trigger

該命令讓觸發器選擇為[default-on],綠燈常量

想要永久有效,將設置寫入/etc/rc.local讓其重啟依舊生效

#編輯 /etc/rc.local 加入,具體自己設置對應trigger
sleep 10
echo default-on > /sys/class/leds/red:os/trigger
echo phy0rx > /sys/class/leds/blue:wifi/trigger
echo cpu > /sys/class/leds/green:internet/trigger

8.2 led燈名稱與觸發器解釋

三色LED地址

  • 紅燈:/sys/class/leds/red:os
  • 藍燈:/sys/class/leds/blue:wifi
  • 綠燈:/sys/class/leds/green:internet

觸發器行為(有些行為,你刷的系統內核不支持)

  • usb-gadget:USB設備連接狀態
  • usb-host:USB主機連接狀態
  • rfkill-any:RFkill任何狀態改變
  • rfkill-none:RFkill無狀態改變
  • kbd-scrolllock:鍵盤滾動鎖定燈狀態
  • kbd-numlock:鍵盤數字鎖定燈狀態
  • kbd-capslock:鍵盤大寫鎖定燈狀態
  • timer:定時器事件
  • heartbeat:心跳事件
  • cpu:CPU狀態
  • default-on:常量開啟狀態
  • panic:恐慌報警狀態
  • mmc0:存儲卡狀態
  • bluetooth-power:藍牙電源狀態
  • hci0-power:HCI0電源狀態
  • rfkill0rfkill1等:RFkill設備狀態?
  • netdev:基于網絡接口的活動(如傳輸數據)觸發。
  • phy0rx:無線設備接收操作,表示WIFI連接狀態
  • phy0tx:無線設備發送操作,表示WIFI連接狀態

9.一些配置內核參數的正or負優化

9.1 通過配置sysctl.conf,配置內核參數

使用命令

nano /etc/sysctl.conf
vm.swappiness=100
vm.vfs_cache_pressure=50
vm.panic_on_oom=0
vm.dirty_ratio=50
vm.dirty_background_ratio=30
vm.min_free_kbytes=10240
vm.max_map_count=262144
vm.dirty_expire_centisecs=3000
vm.dirty_writeback_centisecs=15000net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.proxy_ndp=1
net.ipv6.conf.all.accept_ra=2
net.ipv4.ip_forward=1
net.core.somaxconn=2048
net.ipv4.tcp_max_syn_backlog=8192
net.core.netdev_max_backlog=32768
net.ipv4.tcp_keepalive_time=600
net.ipv4.icmp_echo_ignore_all=0
net.ipv4.tcp_abort_on_overflow=0
net.ipv4.tcp_fack=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_fastopen=3
net.ipv4.tcp_slow_start_after_idle=0
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_keepalive_intvl=30
net.ipv4.tcp_keepalive_probes=3
net.ipv4.ip_default_ttl=128
net.core.message_burst=10
net.core.busy_read=50
net.core.optmem_max=20480
net.ipv4.tcp_challenge_ack_limit=9999
net.ipv4.tcp_max_orphans=32768
net.ipv4.tcp_max_tw_buckets=32768
net.ipv4.udp_rmem_min=8192
net.ipv4.udp_wmem_min=8192
net.ipv4.ip_local_port_range=1024 65000
net.ipv4.tcp_mem=131072 262144 524288
net.ipv4.udp_mem=262144 524288 1048576
net.ipv4.tcp_wmem=8760 256960 4088000
net.ipv4.tcp_rmem=8760 256960 4088000
net.core.rmem_default=524288
net.core.rmem_max=8388608
net.core.wmem_default=524288
net.core.wmem_max=8388608

在修改 /etc/sysctl.conf 文件后,需要運行以下命令使其永久生效:

sysctl -p

如果本文對你有幫助,歡迎點鏈接打賞支持!

圖片被和諧,可以點上面鏈接打賞
如果圖片被和諧,可以點上面鏈接打賞

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/79440.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79440.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/79440.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Pandas】pandas DataFrame where

Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前幾行DataFrame.at快速訪問和修改 DataFrame 中單個值的方法DataFrame.iat快速訪問和修改 DataFrame 中單個值的方法DataFrame.loc用于基于標簽&#xff08;行標簽和列標簽&#…

C++代碼優化

前段時間寫了一些代碼&#xff0c;但是在運算過程中發現有些代碼可以進行改進以提高運行效率&#xff0c;尤其是與PCL相關的部分&#xff0c;可以進行大幅度提高&#xff0e;特意在此進行記錄&#xff0c;分享給大家&#xff0c;也供自己查看&#xff0e; pcl::PointCloud< …

RAG-分塊策略

分塊策略在檢索增強生成&#xff08;RAG&#xff09;方法中起著至關重要的作用&#xff0c;它使文檔能夠被劃分為可管理的部分&#xff0c;同時保持上下文。每種方法都有其特定的優勢&#xff0c;適用于特定的用例。將大型數據文件拆分為更易于管理的段是提高LLM應用效率的最關…

Linux網絡編程 深入解析TFTP協議:基于UDP的文件傳輸實戰

知識點1【TFTP的概述】 學習通信的基本&#xff1a;通信協議&#xff08;具體發送上面樣的報文&#xff09;、通信流程&#xff08;按照什么步驟發送&#xff09; 1、TFTP的概述 tftp&#xff1a;簡單文件傳輸協議&#xff0c;**基于UDP&#xff0c;**不進行用戶有效性驗證 …

「數據可視化 D3系列」入門第十一章:力導向圖深度解析與實現

D3.js 力導向圖深度解析與實現 力導向圖核心概念 力導向圖是一種通過物理模擬來展示復雜關系網絡的圖表類型&#xff0c;特別適合表現社交網絡、知識圖譜、系統拓撲等關系型數據。其核心原理是通過模擬粒子間的物理作用力&#xff08;電荷斥力、彈簧引力等&#xff09;自動計…

音頻格式轉換

1. 下載ffmpeg https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-7.1.1-full_build.7z 2. 配置ffmpeg環境變量 3.安裝pydub pip install pydub 4.編寫轉化工具代碼 from pydub import AudioSegment def convertM4aToWav(m4a,wav):sound AudioSegment.from_file(m4a, f…

基于spring boot 集成 deepseek 流式輸出 的vue3使用指南

本文使用deepseek API接口流式輸出的文章。 環境要求 jdk17 spring boot 3.4 代碼如下: package com.example.controller;import jakarta.annotation.PostConstruct; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.mes…

微博輻射源和干擾機

微波輻射源和干擾機是電子戰和通信領域中的兩個重要概念&#xff0c;它們在軍事、民用及科研中具有廣泛應用。以下是兩者的詳細解析及其相互關系&#xff1a; ?1. 微波輻射源? ?定義?&#xff1a; 微波輻射源是指能夠主動發射微波&#xff08;頻率范圍通常為 ?300 MHz&…

2025年4月16日華為留學生筆試第三題300分

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍OJ 03. 智慧城市網絡優化 問題描述 K小姐是一家智慧城市服務提供商的網絡架構師。她負責規劃城市邊緣計算節點的布局,以提供更快速、穩定的網絡服務。 城市內有 n n

多線程編程的簡單案例——單例模式[多線程編程篇(3)]

目錄 前言 1.wati() 和 notify() wait() 和 notify() 的產生原因 如何使用wait()和notify()? 案例一:單例模式 餓漢式寫法: 懶漢式寫法 對于它的優化 再次優化 結尾 前言 如何簡單的去使用jconsloe 查看線程 (多線程編程篇1)_eclipse查看線程-CSDN博客 淺談Thread類…

pytorch基本操作2

torch.clamp 主要用于對張量中的元素進行截斷&#xff08;clamping&#xff09;&#xff0c;將其限制在一個指定的區間范圍內。 函數定義 torch.clamp(input, minNone, maxNone) → Tensor 參數說明 input 類型&#xff1a;Tensor 需要進行截斷操作的輸入張…

一次制作參考網雜志的閱讀書源的實操經驗總結(附書源)

文章目錄 一、背景介紹二、書源文件三、詳解制作書源&#xff08;一&#xff09;打開Web服務&#xff08;二&#xff09;參考網結構解釋&#xff08;三&#xff09;閱讀書源 基礎&#xff08;四&#xff09;閱讀書源 發現&#xff08;五&#xff09;閱讀書源 詳細&#xff08;六…

并發設計模式實戰系列(2):領導者/追隨者模式

&#x1f31f; ?大家好&#xff0c;我是摘星&#xff01;? &#x1f31f; 今天為大家帶來的是并發設計模式實戰系列&#xff0c;第二章領導者/追隨者&#xff08;Leader/Followers&#xff09;模式&#xff0c;廢話不多說直接開始~ 目錄 領導者/追隨者&#xff08;Leader/…

自求導實現線性回歸與PyTorch張量詳解

目錄 前言一、自求導的方法實現線性回歸1.1自求導的方法實現線性回歸的理論講解1.1.1 線性回歸是什么&#xff1f;1.1.2線性回歸方程是什么&#xff1f;1.1.3散點輸入1.2參數初始化1.2.1 參數與超參數1.2.1.1 參數定義1.2.1.2 參數內容1.2.1.3 超參數定義1.2.1.4 超參數內容1.…

2025年機電一體化、機器人與人工智能國際學術會議(MRAI 2025)

重要信息 時間&#xff1a;2025年4月25日-27日 地點&#xff1a;中國濟南 官網&#xff1a;http://www.icmrai.org 征稿主題 機電一體化機器人人工智能 傳感器和執行器 3D打印技術 智能控制 運動控制 光電系統 光機電一體化 類人機器人 人機界面 先進的運動控制 集成制造系…

線性代數 | 知識點整理 Ref 3

注&#xff1a;本文為 “線性代數 | 知識點整理” 相關文章合輯。 因 csdn 篇幅合并超限分篇連載&#xff0c;本篇為 Ref 3。 略作重排&#xff0c;未整理去重。 圖片清晰度限于引文原狀。 如有內容異常&#xff0c;請看原文。 《線性代數》總復習要點、公式、重要結論與重點釋…

CFD中的動量方程非守恒形式詳解

在計算流體力學&#xff08;CFD&#xff09;中&#xff0c;動量方程可以寫成守恒形式和非守恒形式&#xff0c;兩者在數學上等價&#xff0c;但推導方式和應用場景不同。以下是對非守恒形式的詳細解釋&#xff1a; 1. 動量方程的守恒形式 首先回顧守恒形式的動量方程&#xff…

Leetcode 1504. 統計全 1 子矩形

1.題目基本信息 1.1.題目描述 給你一個 m x n 的二進制矩陣 mat &#xff0c;請你返回有多少個 子矩形 的元素全部都是 1 。 1.2.題目地址 https://leetcode.cn/problems/count-submatrices-with-all-ones/description/ 2.解題方法 2.1.解題思路 單調棧 時間復雜度&…

【Docker】運行錯誤提示 unknown shorthand flag: ‘d‘ in -d ----詳細解決方法

使用docker拉取Dify的時候遇到錯誤 錯誤提示 unknown shorthand flag: d in -dUsage: docker [OPTIONS] COMMAND [ARG...]錯誤原因解析 出現 unknown shorthand flag: d in -d 的根本原因是 Docker 命令格式與當前版本不兼容&#xff0c;具體分為以下兩種情況&#xff1a; 新…

華為OD機試真題——攀登者2(2025A卷:200分)Java/python/JavaScript/C++/C語言/GO六種最佳實現

2025 A卷 200分 題型 本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析&#xff1b; 并提供Java、python、JavaScript、C、C語言、GO六種語言的最佳實現方式&#xff01; 2025華為OD真題目錄全流程解析/備考攻略/經驗分享 華為OD機試真題《攀登者2…