本帖最后由 思想之翼 于 2023-4-14 13:42 编辑
下述代码,用于提取出现最多次数的字符。
在原代码基础上,加了循环语句,故而出现2处变量延迟。
代码非循环运行,耗时大约80毫秒,对于只有1列10行左右数据的文本,似乎耗时过多。
该代码多线程并行运行时,似乎并不能发挥多物理核心的优势,CPU始终只占9%
故而产生能否优化的想法。- @echo off
- setlocal enabledelayedexpansion
- for /l %%f in (101,1,121) do (
- set p=%%f
- for /l %%g in (1000001,1,1100000) do (
- set m=%%g
- cd /d "e:\JZ\!p:~1!\!m:~1!"
- for %%i in (*.txt) do (
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (%%i) do (
- for %%b in (%%a) do (
- set/a #%%b+=1
- if !#%%b! gtr !max! (
- set/a max=!#%%b!
- set "#=%%b"
- ) else if !#%%b! equ !max! set "#=!#! %%b"
- )
- )
- (for %%c in (!#!) do (
- echo %%c
- ))>"e:\ZD\!p:~1!\!m:~1!\%%i"
- endlocal
- )))
复制代码 |