gcc编译选项说明(1)

news/2024/3/28 16:44:50/文章来源:https://blog.csdn.net/ynshi57/article/details/130120527

事情是这样的:

目前在做自驾中系统优化方面的工作,系统优化可以通过几个层面去研究,进行,例如硬件层面,系统层面,算法层面,函数层面,编译层面,以及利用一些工具(perf,easy-profilter,gperf等)去优化整个软件工程,所以静下心来想先从编译入手,所以基本就是gcc了。

看了gcc的官文,这也太多了,这里感谢@mmt的姚楠老哥(chargpt和copilot都能用,🐂)协助和官方文档,对每个字段都做了初步的解释和使用场景,这里先把x86的option给全面解读一下,后面在完成其他options

【x86 Options】

-mtune=cpu-type :这个选项指定了编译器生成的代码的性能优化目标。它告诉编译器,要优化代码以在特定的CPU类型上运行得更好。"cpu-type"可以是一个特定的处理器型号或处理器族的名称,如"-mtune=i686"或"-mtune=core2"。

-march=cpu-type:这个选项指定了编译器生成的代码的目标架构。它告诉编译器,生成适合某个CPU架构的代码。"cpu-type"的取值与"-mtune"类似,但是"-march"选项通常比"-mtune"更加严格,并且包含了更多的CPU指令。 -mtune-ctrl=feature-list :这个选项告诉编译器,应该启用哪些CPU特性来优化代码生成。"feature-list"是一个以逗号分隔的列表,其中每个特性都表示一个特定的CPU指令集或功能。

-mdump-tune-features :这个选项使编译器在编译过程中输出目标CPU的特性列表。

-mno-default :这个选项告诉编译器,不要将某些选项设置为默认值。 -mfpmath=unit : 这个选项指定了浮点运算所使用的数学库。"unit"可以是"387"(表示使用x87浮点单元)或"sse"(表示使用SSE单元)。 -masm=dialect : 这个选项指定了汇编语言的语法和规则。"dialect"可以是"att"(表示AT&T语法)或"intel"(表示Intel语法)。

-mno-fancy-math-387 : 这个选项告诉编译器不使用x87浮点单元的高级数学函数。 -mno-fp-ret-in-387 :这个选项告诉编译器,函数返回值不应该通过x87浮点单元。

-m80387 : 这个选项告诉编译器,生成的代码要求至少有一个x87浮点单元。

-mhard-float : 这个选项告诉编译器,函数调用时要使用硬件浮点寄存器来传递浮点参数。

-msoft-float : 这个选项告诉编译器,函数调用时要使用软件模拟的方式来传递浮点参数。 -mno-wide-multiply :这个选项告诉编译器,不使用32位乘法指令。选项用于控制是否启用宽乘法(wide multiplication)。在某些处理器上,宽乘法允许一次性执行多个操作数的乘法,从而提高运算速度。但在另一些处理器上,使用宽乘法可能会导致代码大小增加,执行速度变慢。如果你的目标处理器上不支持宽乘法或者你希望最小化代码大小,则可以使用-mno-wide-multiply禁用它。默认情况下,GCC会根据目标处理器类型自动选择是否使用宽乘法。

-mrtd : 这个选项告诉编译器,生成的代码应该使用微软的__cdecl调用约定。

-malign-double : 这个选项告诉编译器,double类型的数据应该按照8字节对齐。 -mpreferred-stack-boundary=num :这个选项告诉编译器,栈指针应该按照"num"字 -mincoming-stack-boundary=num :设置最小的栈边界对齐字节数,用于调整栈的大小和对齐方式。默认值是 2。 -mcld :指定是否启用 Cld 指令。

-mcx16 :指定是否启用 16 字节通用寄存器 XMM16-XMM31

-msahf :指定是否启用 SAHFLAHF 指令。

-mmovbe :指定是否启用 MOVBE 指令。

-mcrc32 :指定是否启用 CRC32 指令。

-mmwait :指定是否启用 MWAIT 指令。 -mrecip :指定是否启用浮点数求倒数指令,可选项为 yesno,默认是 no

-mrecip=opt :指定浮点数求倒数指令的优化级别,可选项为 nonefastaccurate。 -mvzeroupper :指定是否启用 VZEROUPPER 指令。

-mprefer-avx128 :指定是否偏好 128 位 AVX 寄存器。

-mprefer-vector-width=opt :指定偏好的向量宽度,可选项为 128256512。 -mmove-max=bits :指定最大移动数据宽度,单位为比特。默认值为 128。

-mstore-max=bits:指定最大存储数据宽度,单位为比特。默认值为 128。

-mmmx: 指定是否启用 MMX 指令集。

-msse: 指定是否启用 SSE 指令集。

-msse2: 指定是否启用 SSE2 指令集。

-msse3: 指定是否启用 SSE3 指令集。

-mssse3: 指定是否启用 SSSE3 指令集。

-msse4.1: 指定是否启用 SSE4.1 指令集。

-msse4.2: 指定是否启用 SSE4.2 指令集。

-msse4: 指定是否启用 SSE4 指令集。

-mavx: 指定是否启用 AVX 指令集。

-mavx2: 指定是否启用 AVX2 指令集。

-mavx512f: 指定是否启用 AVX-512F 指令集。

-mavx512pf: 指定是否启用 AVX-512PF 指令集。

-mavx512er: 启用AVX512-ER指令集,这是Intel CPU的一种指令集,用于扩展向量指令集以支持高性能计算。

-mavx512cd: 启用AVX512-CD指令集,用于向量压缩和扩展。

-mavx512vl: 启用AVX512-VL指令集,用于支持扩展向量长度,从而在向量运算中增加通用寄存器的可用性。

-mavx512bw: 启用AVX512-BW指令集,用于扩展向量指令集,支持8位和16位数据类型的运算。

-mavx512dq: 启用AVX512-DQ指令集,用于扩展向量指令集,支持32位和64位数据类型的运算。

-mavx512ifma: 启用AVX512-IFMA指令集,用于实现整数乘法累加操作的加速,主要用于密码学运算。

-mavx512vbmi: 启用AVX512-VBMI指令集,用于支持向量字节操作,例如在加密和压缩算法中的位移、比较和掩码操作。

-msha: 启用SHA扩展指令集,用于支持SHA-1和SHA-256哈希算法。

-maes: 启用AES指令集,用于支持高级加密标准(Advanced Encryption Standard)。

-mpclmul: 启用PCLMUL指令集,用于支持多项式乘法指令,主要用于密码学算法。

-mfsgsbase: 启用FSGSBASE指令集,用于支持对FS/GS段基址的直接操作,以实现快速上下文切换。

-mrdrnd: 启用RDRAND指令集,用于产生随机数。

-mf16c: 启用16位浮点指令集,用于优化16位浮点运算。

-mfma: 启用FMA指令集,用于支持浮点数乘加操作。

-mpconfig: 启用CONFIG TDP MMX指令集,用于优化功率控制机制。

-mwbnoinvd: 启用WBNOINVD指令集,用于禁止缓存刷新操作。

-mptwrite: 启用PTWRITE指令集,用于在写入分页表项时产生跟踪数据。

-mprefetchwt1: 启用PREFETCHWT1指令集,用于提前加载数据到CPU缓存。

-mclflushopt: 启用CLFLUSHOPT指令集,用于加速缓存刷新操作。

-mclwb: 启用clwb指令,用于将缓存行写入内存。默认情况下关闭。

-mxsavec: 启用xsavec指令,用于以紧凑的格式保存上下文。默认情况下关闭。

-mxsaves: 启用xsaves指令,用于保存扩展状态。默认情况下关闭。

-msse4a: 启用SSE4a指令集,包含用于加速特定应用程序的指令。默认情况下关闭。

-m3dnow, -m3dnowa: 启用3DNow!指令集,包含用于加速浮点计算的指令。默认情况下关闭。

-mpopcnt: 启用popcnt指令,用于计算二进制位的数量。默认情况下开启。

-mabm: 启用ABM指令集,用于加速位操作。默认情况下关闭。

-mbmi: 启用BMI指令集,包含用于加速位操作的指令。默认情况下开启。

-mtbm: 启用TBM指令集,包含用于加速位操作的指令。默认情况下关闭。

-mfma4: 启用FMA4指令集,包含用于加速浮点计算的指令。默认情况下关闭。

-mxop: 启用XOP指令集,包含用于加速位操作和浮点计算的指令。默认情况下关闭。

-madx: 启用ADX指令集,包含用于加速某些算法的指令。默认情况下关闭。

-mlzcnt: 启用LZCNT指令,用于计算二进制数中前导零的数量。默认情况下开启。

-mbmi2: 启用BMI2指令集,包含用于加速位操作的指令。默认情况下开启。

-mfxsr: 启用FXSAVE和FXRSTOR指令,用于保存和恢复浮点寄存器的状态。默认情况下开启。

-mxsave: 启用XSAVE指令,用于将扩展状态保存到内存中。默认情况下开启。

-mxsaveopt: 启用XSAVEOPT指令,用于以更有效的方式保存扩展状态。默认情况下开启。

-mrtm: 启用RTM指令,用于实现事务内存。默认情况下关闭。

-mhle: 启用HLE指令,用于在不使用事务内存的情况下实现原子操作。默认情况下关闭。

 

-mlwp: 启用LWP指令,用于加速线程调度。默认情况下关闭。

 

-mmwaitx:启用了此选项后,CPU 的 mwaitx 指令将变为可用状态。mwaitx 可以通过让 CPU 进入深度睡眠状态来优化性能,这在一些需要处理大量等待时间的应用程序中可能会有所帮助。

 

-mclzero:启用了此选项后,CPU 将支持 clzero 指令。clzero 指令用于将指定内存位置清零,可用于在一些高性能计算场景中加速内存分配和释放操作。

 

-mpku:启用了此选项后,CPU 的 pkru 寄存器将变为可用状态。pkru 寄存器用于保护内存页的访问权限,可用于加强内存访问安全。

 

-mthreads:启用了此选项后,编译器将生成多线程代码以充分利用多核 CPU 的性能。默认情况下,此选项处于关闭状态。

 

-mgfni:启用了此选项后,CPU 将支持 GFM 指令集扩展。GFM 指令集扩展包含一组用于加速有限域数学运算的指令,可用于加速一些密码学算法等应用。

 

-mvaes:启用了此选项后,CPU 将支持 VAES 指令集扩展。VAES 指令集扩展包含一组用于加速 AES 加密算法的指令,可用于加速一些加密应用。

 

-mwaitpkg:启用了此选项后,CPU 的 waitpkg 指令将变为可用状态。waitpkg 可以通过在等待时降低 CPU 的功耗来节省能源。

 

-mshstk:启用此选项后,CPU 将支持 shstk 指令。shstk 指令可以在用户模式下将当前的栈指针保存在一个特殊的堆栈中,可用于一些安全应用。

 

-mmanual-endbr:启用此选项后,编译器将使用 ENDBR 指令代替 RET 指令,以提高程序的安全性。ENDBR 指令可用于防止 ROP 攻击。

 

-mcet-switch:启用了此选项后,CPU 的 CET (Control-flow Enforcement Technology)将变为可用状态。CET 可以提供一些控制流程完整性的保护,以减少攻击的成功率。

 

-mforce-indirect-call:启用了此选项后,编译器将强制使用间接调用而不是直接调用函数。这可用于提高程序的安全性,因为间接调用可以使攻击者更难以进行 ROP 攻击。

  • -mavx512vbmi2: 启用AVX-512向量字节操作2指令集,用于处理向量字节操作。

  • -mavx512bf16: 启用AVX-512 BF16指令集,用于执行16位浮点数运算,可以加速深度学习等应用。

  • -menqcmd: 启用AVX-512 Enqueue Command指令集,用于加速异步处理。

  • -mvpclmulqdq: 启用PCLMULQDQ指令集,用于加速GCM模式的AES加密。

  • -mavx512bitalg: 启用AVX-512位算法指令集,用于处理哈希、CRC等算法。

  • -mmovdiri: 启用MOVDIRI指令,用于内存传输。

  • -mmovdir64b: 启用MOVDIR64B指令,用于64字节内存传输。

  • -mavx512vpopcntdq: 启用AVX-512向量POPCOUNT指令集,用于快速计算向量中的1的数量。

  • -mavx5124fmaps: 启用AVX-512 4元素浮点数指令集,可以加速一些科学计算和矩阵计算等应用。

  • -mavx512vnni: 启用AVX-512向量神经网络指令集,用于加速神经网络计算。

  • -mavx5124vnniw: 启用AVX-512 4元素向量整数指令集,用于向量整数运算。

  • -mprfchw: 启用PRFCHW指令,用于提高内存带宽。

  • -mrdpid: 启用RDPID指令,用于获取处理器ID信息。

  • -mrdseed: 启用RDSEED指令,用于生成随机数。

  • -msgx: 启用SGX指令,用于加密和隔离。

  • -mavx512vp2intersect: 启用AVX-512向量二元交指令集,用于向量操作。

  • -mserialize: 启用对 C++ 对象的序列化支持。默认情况下关闭。

  • -mtsxldtrk: 启用TSXLDTRK指令,用于硬件事务内存。

  • -mamx-tile: 启用AMX Tile指令集,用于深度神经网络卷积操作。

  • -mamx-int8: 启用AMX INT8指令集,用于整数向量运算。

  • -mamx-bf16: 启用AMX BF16指令集,用于浮点数向量运算。

  • -muintr: 启用UINTR指令集,用于处理信号。

  • -mhreset: 启用HRESET指令,用于重置特权状态。

  • 这些选项通常用于优化特定类型的应用程序,因此默认情况下关闭。启用它们可能会增加应用程序的性能,但也可能会增加代码的复杂性和编译时间,因此需要谨慎使用。

-mavxvnni: 启用AVX-512神经网络指令,可以加速深度学习任务。默认情况下是关闭的。

-mavx512fp16: 启用AVX-512半精度浮点指令,可以加速浮点运算。默认情况下是关闭的。

-mavxifma: 启用AVX指令集下的整数乘法和累加指令。默认情况下是关闭的。

-mavxvnniint8: 启用AVX-512指令集下的整数8位量化指令,可以加速深度学习任务。默认情况下是关闭的。

-mavxneconvert: 启用AVX指令集下的浮点转换指令,可以加速某些浮点运算。默认情况下是关闭的。

-mcmpccxadd: 启用AVX-512指令集下的循环同步指令,可用于一些多线程应用。默认情况下是关闭的。

-mamx-fp16: 启用AMX指令集下的半精度浮点指令,可以加速浮点运算。默认情况下是关闭的。

-mprefetchi: 启用指令级预取指令,可以在数据到达处理器之前预取数据,以提高性能。默认情况下是关闭的。

-mraoint: 启用返回其他堆栈指针的指令,可用于一些安全相关应用。默认情况下是关闭的。

-mamx-complex: 启用AMX指令集下的复数指令,可用于复数运算。默认情况下是关闭的。

-mcldemote: 启用缓存降级指令,可以将缓存中的数据移动到较慢的存储器级别中,以减少对缓存的竞争。默认情况下是关闭的。

-mms-bitfields: 启用Microsoft指定的位字段布局规则,可以更有效地使用内存。默认情况下是关闭的。

-mno-align-stringops: 禁用字符串操作的内存对齐,可以提高性能。默认情况下是关闭的。

-minline-all-stringops: 内联所有字符串操作,可以提高性能。默认情况下是关闭的。

-minline-stringops-dynamically: 根据指令计数动态内联字符串操作,可以提高性能。默认情况下是关闭的。

  • -mstringop-strategy=alg: 指定字符串操作函数的策略,例如strcpymemcpy。默认情况下,它将使用基于循环的实现策略。该选项可以改为使用一些基于算法的实现策略。

  • -mkl: 使用Intel Math Kernel Library(MKL)的优化代码。

  • -mwidekl: 启用MKL的宽向量优化。

  • -mmemcpy-strategy=strategy: 指定memcpy()函数的实现策略。策略的可选值为rep(使用REP MOVSB指令)或mov(使用MOVNTDQA指令)。默认策略因体系结构而异。

  • -mmemset-strategy=strategy: 指定memset()函数的实现策略。策略的可选值为rep(使用REP STOSB指令)或mov(使用PREFETCHW和MOV指令)。默认策略因体系结构而异。

  • -mpush-args: 函数调用时使用栈来传递函数参数。

  • -maccumulate-outgoing-args: 将函数调用的前几个参数存储在寄存器中,而不是在堆栈中传递。这样可以提高函数调用的性能。

  • -m128bit-long-double: 启用128位长双精度类型。

  • -m96bit-long-double: 启用96位长双精度类型。

  • -mlong-double-64: 启用64位长双精度类型。

  • -mlong-double-80: 启用80位长双精度类型。

  • -mlong-double-128: 启用128位长双精度类型。

  • -mregparm=num: 设置函数调用时用于传递函数参数的寄存器数量。默认值为3。

  • -msseregparm: 函数调用时使用SSE寄存器来传递函数参数。这样可以提高函数调用的性能。

  • -mveclibabi=type: 指定使用的向量库类型,type可以是auto、svml、或者none,默认为auto。

  • -mvect8-ret-in-mem: 将8字节或更小的向量类型从寄存器中返回时,将返回值存储在内存中。

  • -mpc32: 生成32位模式的代码。

  • -mpc64: 生成64位模式的代码。

  • -mpc80: 生成80位模式的代码。

  • -mdaz-ftz: 在数学异常(如除以零或无穷大的算术运算)中执行默认动作,通常是生成NaN结果。当该选项开启时,动作被忽略并产生0结果。

  • -mstackrealign: 在调用函数之前重新对齐栈指针,以便它与已经对齐的内存区域对齐。

  • -momit-leaf-frame-pointer: 在不需要栈帧指针的叶子函数中省略栈帧指针。

  • -mno-red-zone: 禁用红区,即禁止使用位于栈底下方128字节的内存区域。

  • -mno-tls-direct-seg-refs: 禁用TLS直接寻址。

  • -mcmodel=code-model: 选择目标代码模型,code-model可以是small、kernel、medium、large、或者默认的small。

  • -mabi=name: 选择ABI(应用程序二进制接口),name可以是ilp32、ilp32f、lp64、lp64f、或者默认的gnu。

  • -maddress-mode=mode: 设置寻址模式,mode可以是short、near、或者默认的long。

  • -m32: 生成32位模式的代码。

  • -m64: 生成64位模式的代码。

  • -mx32: 生成32位模式的x86-64代码。

  • -m16: 生成16位模式的代码。

  • -miamcu: 生成针对嵌入式MCU的代码。

  • -mlarge-data-threshold=num: 设置在将数据存储到RODATA中之前,必须达到的最小数据大小(以字节为单位),默认为65535。

-msse2avx: 在SSE和AVX指令集之间自动转换。默认值为开启。

-mfentry: 生成一个函数入口,用于跟踪进入函数的次数。默认值为关闭。

-mrecord-mcount: 生成一个mcount符号,可以用于跟踪调用函数的次数。默认值为关闭。

-mnop-mcount: 不生成mcount符号。默认值为关闭。

-m8bit-idiv: 使用8位除法指令来优化除法操作。默认值为关闭。

-minstrument-return=type: 插入指令来记录函数返回的地址,用于分析。type参数可以是以下值之一:jr(使用JR指令),jmp(使用JMP指令),or32(使用OR指令),call(使用CALL指令)。默认值为关闭。

-mfentry-name=name: 使用给定的名称作为mfentry符号的名称。默认为“__cyg_profile_func_enter”。

-mfentry-section=name: 使用给定的名称作为mfentry符号所在的节的名称。默认为“.text”。

-mavx256-split-unaligned-load: 启用将不对齐的32位或64位内存读取分解为两个内存操作以利用AVX 256位执行单元。默认值为关闭。

-mavx256-split-unaligned-store: 启用将不对齐的32位或64位内存存储拆分为两个内存操作以利用AVX 256位执行单元。默认值为关闭。

-malign-data=type: 设置在内存中对齐数据的方式。type参数可以是以下值之一:function(按函数对齐数据),common(按大小对齐数据),string(按字符串对齐数据),minimum(按最小对齐数据),maximum(按最大对齐数据)。默认值为“function”。

-mstack-protector-guard=guard: 启用堆栈保护器,并使用给定的保护器值。guard参数可以是以下值之一:global(使用全局保护器),tls(使用TLS保护器),check(在运行时检查保护器)。默认值为“check”。

-mstack-protector-guard-reg=reg: 使用给定的寄存器作为堆栈保护器。默认为“ebx”。

-mstack-protector-guard-offset=offset: 设置堆栈保护器的偏移量。默认为“0”。

-mstack-protector-guard-symbol=symbol: 使用给定的符号作为堆栈保护器。默认为“__guard”。

-mgeneral-regs-only: 仅使用通用寄存器,不使用浮点寄存器。默认为关闭。

  • mcall-ms2sysv-xlogues:在函数调用时使用 Microsoft x64 系统 V 调用规则。默认情况下,GNU 编译器使用 GCC 调用规则。

  • mrelax-cmpxchg-loop:启用松弛循环中的 cmpxchg 指令,以允许更多的指令并行执行。

  • mindirect-branch=choice:指定间接分支跳转的实现方式,choice 可选值为 thunk、jmp、call。

  • mfunction-return=choice:指定函数返回时使用的指令,choice 可选值为 thunks、plain、jumps。

  • mindirect-branch-register:允许在间接分支中使用寄存器作为跳转地址。

  • mharden-sls=choice:启用 Intel 的“软件控制流保护”功能,可选值为 auto、on、off。

  • mindirect-branch-cs-prefix:在每个间接分支前插入 CS 前缀指令。

  • mneeded:标记未使用的静态函数和数据。

  • mno-direct-extern-access:禁止直接访问外部符号。

  • munroll-only-small-loops:仅展开小循环。

  • mlam=choice:启用针对 LAM 程序设计的优化,可选值为 on、off。默认情况下该选项处于关闭状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_285840.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于朴素贝叶斯分类器的钞票真伪识别模型

基于朴素贝叶斯分类器的钞票真伪识别模型 内容 本实验通过实现钞票真伪判别案例来展开学习朴素贝叶斯分类器的原理及应用。 本实验的主要技能点: 1、 朴素贝叶斯分类器模型的构建 2、 模型的评估与预测 3、 分类概率的输出 源码下载 环境 操作系统&#xf…

springboot学习2

一、spring boot自动装配原理 pom.xml spring-boot-dependencies 核心依赖在父工程中 在写或者引入一些spring boot依赖的时候&#xff0c;不需要指定版本&#xff0c;因为有这些版本仓库启动器 <dependency><groupId>org.springframework.boot</groupId>&…

数据结构刷题笔记 | 数组、字符串、链表、栈、队列、数、图

本篇为笔者学习数据结构时&#xff0c;在牛客网站的刷题笔记。 数组——长度固定 数组是一种对象&#xff0c;不属于原生类&#xff0c;数组的大小确定之后不可改变。【原生类指未被实例化的类&#xff0c;数组一般指实例化&#xff0c;被分配空间的类】数组常用的两种基本操作…

C#,码海拾贝(18)——矩阵的(一般)三角分解法(Triangular Decomposition)之C#源代码,《C#数值计算算法编程》源代码升级改进版

1 三角分解法 Triangular Decomposition 三角分解法亦称因子分解法&#xff0c;由消元法演变而来的解线性方程组的一类方法。设方程组的矩阵形式为Axb&#xff0c;三角分解法就是将系数矩阵A分解为一个下三角矩阵L和一个上三角矩阵U之积&#xff1a;ALU&#xff0c;然后依次解…

数字化体验时代,企业如何做好内部知识数字化管理

随着数字化时代的到来&#xff0c;企业内部的知识管理也面临着新的挑战和机遇。数字化技术的应用&#xff0c;可以极大地提高企业内部知识的数字化管理效率和质量&#xff0c;从而提升企业内部的工作效率、员工满意度和企业竞争力。本文将从数字化时代的背景出发&#xff0c;探…

大数据 | HBase基本工作原理

前文回顾&#xff1a;MapReduce基本原理 目录 &#x1f4da;HBase基本介绍 &#x1f407;HBase的设计目标和功能特点 &#x1f407;HBase在Hadoop中的生态环境 &#x1f4da;HBase的数据模型 &#x1f407;逻辑数据模型 &#x1f407;物理存储格式 &#x1f4da;HBase基…

使用golang连接kafka

1 下载&#xff0c;配置&#xff0c;启动 kafka 下载链接 配置修改 在config目录下的server文件和zookeeper文件&#xff0c;其中分别修改kafka的日志保存路径和zookeeper的数据保存路径。 启动kafka 先启动kafka自带的zookeeper&#xff0c;在kafka的根目录下打开终端&a…

教程 | 多通道fNIRS数据的预处理和平均(下)

前言 前文近红外数据的预处理和平均&#xff08;上&#xff09;提到fNIRS是一种评估氧和脱氧血红蛋白浓度变化的方法&#xff0c;可与fMRI相媲美。fNIRS的不足是它的空间分辨率比fMRI差&#xff0c;但其优点是有更高的时间分辨率&#xff0c;并允许测量无法通过fMRI扫描仪测试…

VsCode 将源代码管理中的新旧代码上下对比变为左右对比

文章目录一、默认设置二、左右布局变成了上下布局三、解决方法&#xff1a;将上下布局改为左右布局1&#xff1a;找到右上角的更多设置2&#xff1a;点击更多设置后点击【切换到并排视图】3&#xff1a;效果如下&#xff08;还是原来的效果&#xff09;四、左右切换成上下总结一…

Python与各种开发语言比较、对比优略

选择要学习的技术和选择要上的大学一样重要&#xff0c;如果选错了&#xff0c;你将来不仅得不到自己喜欢的高薪工作&#xff0c;反而会弄得一堆麻烦。如果你打开了这篇文章&#xff0c;说明你已经考虑选择Python开发作为你以后的职业了。在这篇文章里&#xff0c;我们会详细找…

stata变量引用

stata变量引用–潘登同学的stata笔记 文章目录stata变量引用--潘登同学的stata笔记变量生成gen命令通配符&#xff1a;*, ?, -因子变量时间序列变量命名、前缀与标签变量命名、添加前缀通配符与批量重命名变量标签数字-文字对应表CSMAR数据处理查看、查找变量单值、暂元单值暂…

超详细!腾讯NLP算法岗面经(已offer)

作者 | ZipZou整理 | NewBeeNLP面试锦囊之面经分享系列&#xff0c;持续更新中 可以后台回复"面试"加入交流讨论组噢分享一篇旧文&#xff0c;希望大家都成功上岸~写在前面首先来段简单的自我介绍&#xff1a;2021届硕士&#xff0c;硕士期间未有实习经历&#xff0c…

FE_CSS 页面布局之浮动

网页布局的本质——用 CSS 来摆放盒子。 把盒子摆放到相应位置。CSS 提供了三种传统布局方式(简单说,就是盒子如何进行排列顺序)&#xff1a; 普通流&#xff08;标准流&#xff09;浮动定位 1 标准流&#xff08;普通流/文档流&#xff09; 所谓的标准流: 就是标签按照规定…

Runtime命令参数字符串和数组比较

问题 最近有个问题本地执行 ssh -p 8084 root10.224.122.51 \"ssh -p 22 root192.168.5.157 mkdir -p /opt/dw-release/pdld-admin\"程序执行总是报错&#xff1a; No such file or directory 但是直接在终端执行正常&#xff0c;这就很奇怪。肯定能推出是程序执行…

10.1 二重积分的概念与性质

学习目标&#xff1a; 学习二重积分&#xff0c;我会采取以下几个步骤&#xff1a; 了解基本概念&#xff1a;首先我会学习二重积分的定义及其意义&#xff0c;了解二重积分的性质和特点&#xff0c;以及二重积分的计算方法。 理解二重积分的几何意义&#xff1a;我会通过画图…

【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

LeetCode——二叉树的非递归遍历

144. 二叉树的前序遍历 给你二叉树的根节点root&#xff0c;返回它节点值的前序遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 示例 3&#xff1a; 输入&#xff1…

PDF怎么转CAD文件?(免费!高效转换方法汇总)

一般而言&#xff0c;PDF图纸是不能修改的。若需修改&#xff0c;则需将PDF转CAD&#xff0c;此时如何满足PDF转CAD的需求呢&#xff1f;今天&#xff0c;我将教你两种免费的PDF转CAD的方法&#xff0c;助力高效办公。 1.本地软件转换法 这是用本地软件转换方法&#xff0c;支…

JVM之GC日志解读

通过阅读Gc日志&#xff0c;我们可以了解Java虚拟机内存分配与回收策略。 内存分配与垃圾回收的参数列表 -XX:PrintGC 输出GC日志。类似&#xff1a;-verbose:gc-XX:PrintGCDetails 输出GC的详细日志-XX:PrintGCTimestamps 输出GC的时间戳&#xff08;以基准时间的形式&#xf…

软件企业利用ChatGPT的正确姿势

先来看一下现在市场环境 ChatGPT作为现象级产品横空出世之后&#xff0c;极大地带动了大语言模型产业和生成式AI&#xff08;AIGC&#xff09;产业的蓬勃发展。海外市场上&#xff0c;OpenAI、微软、谷歌、Meta等巨头动作频频。中国市场更是风起云涌&#xff0c;百度、阿里、华…