当前位置: 首页 > news >正文

SAP 详解ST02

问:在st02中看到,Program和Export/Import的Swap出现红的了,这个是什么原因啊,是不是对系统的性能有影响啊,是否应该调整一些参数啊。要怎么调整呢?
复1:双击红色的部分就可以看到相应的参数修改提示啦~不过曾经有人告诉过我,只要Hitratio的数字是99点多,Swap是红色也没有什么关系,我也不知
道这样的说法是不是正确的,请各位高手指正!

复2:不是很正确:现在看起来Export/import的Buffer设置是偏小了,因为看起来系统启动了6个小时,Export/import的SWAP总数就超过1W了,远高于SAP推荐的警戒值1000/day
建议观察一段时间,如果的确是平均SWAP超过1000/day的话,还是调高一下Export/import buffer比较好。

复3:跟你说这话的人还是有点片面,我不敢苟同这种观点。
我刚做的一个项目,客户情况比较夸张,buffer参数完全没有调整,保持着安装完成的初始状态,整个系统SWAP情况极其严重,特别是Program buffer的SWAP平均超过100,000/day!但你看
Hitratior的话,可能觉得还好,也有97.8%。实际上呢,系统的Free物理内存还有超过600M,这种情况完全属于资源分配不合理;实际运用中他们在执行一些比较大的程序是,速度特别慢:因
为执行的过程中在拼命的SWAP,本来内存里能处理的东西被搞到SWAP里折腾,能不慢吗?
  我认为只要有SWAP,你都应进行评估,要尽可能发挥系统最大的潜力。有一家公司的系统我特佩服,<31H的老系统了,用了n多年了(我刚做SAP的时候他们生产系统就已经运行了有1、2年
了),业务量也是巨大的(家用电器生产厂,PP、SD、FI、MM都在用),并发用户也是很多的,可是performance也是不错的,你看人家的SWAP,几乎总是为0(我是一次也没看到过在他们生产系统有SWAP),赞!
再罗嗦一句,Hitratior低也不能代表系统的Buffer没配好,比如说系统刚系统的一段时间里,你会看到Hitratior可能很低,这个很正常,以Program buffer为例:程序系统第一次启动后总归是不在Buffer里的,运行一次后才会在Buffer里,这也就是为什么系统刚启动的时候,SAP用起来好像比平时要慢对Buffer的评价,最好是长期观察、分析,这样的结果更有说服力。

复4:SWAP的单位一律为 “次”。 to:Aming,你们的Export/Import确实小了,10个小时下来都超过7W了,看看物理内存还空吧,如果空可以调一调看。

复5:hehe 这是德式数字你大概用SAP*看的,换个用户,把用户的default里面的数字表现方式改一下。另外关于SWAP的问题要分开来看,如果你只有一台应用服务器(例如CI+DB或者CI&DB),尤其是你们上了多个模块后,各种Buffer会很快的上涨,ABAP尤其如此,而且你会觉得是个无底洞,这是如果要追求好的performance,需要增加DI。另外建议你看看SAP library里关于Memory management的文档,里面描述SAP内存管理的模式,懂了模式才可以掌握如何调整它。


 回复: 
Good discuss but I still would like to ask Mr. Performance answer this kind of
question. Not because I do not know he need making money from this kind of task.  I
do not recommend Jr. basis doing any performance tuning task before you understand
whole system technical architechture.

You should start from following oss note if you have no idea about Performance
optimums via memory mangement. It's really depends on the OS and DB and R3 release.

--------------------------------------------------------------------
OSS NOTE: 103747

Performance in 4.0/4.5/4.6: Parameter recommendations:

Performance in 4.0/4.5/4.6: Parameter recommendations   Help  


   SAP Note Number      Note Language    DEENJA    Display Versions    4950515253  
Print      SSCR      Download  

Text  Header Data  Release  Correction Instructions  Support Packages  >>  
Symptom
You want to set R/3 Memory Management. Only an optimum setting of the R/3 Memory
Management ensures error-free operation of the R/3 System and satisfactory system
performance.

After upgrading to R/3 Release 4.0, you notice long response times in the R/3 System.

Last changes:

03/11/1999: New recommendations for abap/heap_area_dia
11/23/1998: Release for customer (ts)
11/13/1998: Additions for AS/400 (rh)
11/17/1998: Revision prior to release for customers (ts)
11/18/1998: AS/400: Implementation of Note 126210 (rh)
01/28/2000: Note 192658: Parameters for SAP BW
02/02/2000: abap/heap_area... and Shared Memory Limit on SINIX
09/03/2000: Released for 4.6A/B
08/28/2000: AS/400: Including recommendations for Rel. 4.6 (rh)
10/26/2000: AS/400: New recommendations for em/initial_size_MB (<=4.5B)
03/06/2001: Shared Memory Management for S/390 Application Server
05/17/2001: Note on em/global_area_MB (-> Note 329021)
11/07/2001: Remove AS/400-specific notes (rh)
02/07/2002: Linux 2.4: Note 386605 for MM

Additional key words
Memory Management, EarlyWatch, GoingLive, Basis course BC315 "Workload Analysis",
Release 4.0


Cause and preconditions
This note is a collection of individual notes on Memory Management for Release 4.0.


The recommendations are intended as initial settings (that is, generally) before or
immediately after a release upgrade. After production start individual parameters
may have to be corrected and the actual requirements adapted.


This note is NOT valid for the IBM iSeries (AS/400) platform. The additional
features of this platform are described in other notes (see item 7 Additional notes).


In Note 192658 you can find additional recommendations for BW Systems.


Solution
***********************************************************************
* Support by TCC Services *
***********************************************************************

In order to ensure good performance after the upgrade, we recommend that you make
use of the TCC services, for example within the Early Watch service contract or
within the Going Live functional upgrade check.

You have to plan for two service sessions, approx. 4-8 weeks before and 2-8 weeks
after the upgrade. The following is required to ensure a good performance:

Before the upgrade:
Plausibility check for the hardware sizing
Recommendations on the configuration after the upgrade
After the upgrade:
Detailed adjustment of the R/3 and database parameters
Identification of unsolved performance problems

Make the dates for the TCC service session in time before the upgrade, in order to
avoid long waiting times for the date !!!

0) What's new in Release 4.0 ?


a) Recommendations for the physical memory:
----------------------------------------

Note 89305 contains information
89305 Resource requirements for Release 4.0A/4.0B
128221 Increased memory consumption with Oracle 8
85524 R/3 scaling (Quicksizer)

The following recommendation for settings apply to application servers with:
>= 750 MByte main memory
> 50 users
> 3 R/3 modules being used

For development and test systems and for very small productive systems smaller
settings may also be possible.


b) Zero Administration Memory Management for Windows NT:
-----------------------------------------------------
In Release 4.0A, the "Zero Administration Memory Management" described in R/3 Note
88416 is active for R/3 under Windows NT. We recommend that you proceed according to
this note for NT. The parameters affected by the "Zero Administration Memory
Management" are marked with (*) in this note. All recommendations in this note for
parameters with (*) therefore only apply to UNIX platforms (except for LINUX, see
below).


c) Standard profiles for UNIX / 4.0B:
----------------------------------
With new 4.0B installations, memory profiles are delivered which depend on the
physical main storage facilities. The parameter "RAM" which the person performing
the installation makes available for the R/3 instance is used as "input". This
results in an "area" according to the following table:

Area │ RAM [MB]
-----------------------------------------------------------------
0 │ up to 750 -> no recommendations given by this note!
I │ 750 <= RAM < 1024
II │ 1024 <= RAM < 2048
III │ 2048 <= RAM -> not for HP-UX and SINIX

Remark: Owing to operating system restrictions, area III cannot be set for SNI/SINIX
and HP-UX with 32-bit kernel.

Parameters are now set depending on the respective area.
The parameters which are set due to the new installation procedure correspond to a
large extent to the recommendations of this note.

With 4.0A installations or upgrades to 4.0, the parameters should be changed
according to this note either before or immediately after the upgrade.

Note 146528 provides extensive information regarding the limitations and options
regarding the configuration of machines with "a lot of RAM" (> 2GByte).


d) Export/import buffer / ATP server:
----------------------------------
An ATP service can be started on an R/3 instance of an R/3 System. This should be
the instance on which the enqueue service is running. In the Default.pfl
rdisp/atp_server = <ATP instance>
(for example, rdisp/atp_server = us0311_ALR_21)
must be set.
If the ATP service is active, Transaction SM51 displays the value "Atp" in the
Service type column. The ATP service stores its data in the export/import buffer.
This buffer on the ATP instance should therefore be configured larger than usual (20
MBytes). (Other programs also use the export/import buffer.)
See also Note 99999.


e) AIX:
----
                       For large AIX systems (> 1 GByte physical main memory),
refer to Notes 146528, 98084, 95260, 95454, 117267, 124555, and 128935.
CAUTION: Pay attention to the warning in Note 95260 or 117267 !!!

a) Digital Unix:
-------------
Refer to Notes 120539 and 25960.

b) HP-UX and SNI/SINIX (32-bit)
----------------------------
With HP-UX, the allocatable shared memory is limited to approx. 1700 MB for each
server; for SNI/SINIX to approx. 1700 MB for each instance. Therefore, no settings
must be made according to area III for these operating systems. If
em/initial_size_MB and rdisp/ROLL_SHM (in area II) are set greater than the default
values 750 (MB) or 8000 (=64 MB), other shared memory elements (for example,
buffers) must be decreased.

Solution for SINIX: Set up several R/3 instances on one computer or
use the 64-bit R/3 kernel.
Solution for HP-UX: Several R/3 instances are not useful since the
SHM limitation applies per computer. Therefore,
use the 64-bit R/3 kernel.

For the 64-bit kernel also refer to Notes 146528 and 146289.

You can search profiles for errors at the OS level using test program sappfpar
name=<SID> nr= (or sappfpar pf=<full path of profile> (see Note 31395).

c) "Zero Adminstration Memory Management" for Linux:
------------------------------------------------------

With Release 4.5, a simplified memory management has been implemented for R/3 on
Linux 2.4 as well. The following parameters are set automatically: ztta/roll_area,
ztta/roll_first, ztta/roll_extension, rdisp/ROLL_MAXFS, rdisp/PG_MAXFS,
rdisp/ROLL_SHM, rdisp/PG_SHM, em/initial_size_MB. You can also keep parameters
abap/heap_area_dia, abap/heap_area_nondia, abap/heap_area_total on the default
values defined by the SAP System for the time being. We recommend you to proceed as
described in Note 386605.


d) Miscellaneous:
--------------
The changes for the parameters rsdb/ntab/entrycount and rsdb/ntab/ftabsize are
particularly large due to the namespace extension (that is, table name lengths from
10 -> 40 characters). The sizes have more than doubled.
Parameters which are new or are changed significantly as compared to 3.1 are
indicated with "!!!".


1. R/3 buffer

Area-independent:
rsdb/ntab/entrycount 30000 !!!
rsdb/ntab/irbdsize 4000
rsdb/ntab/sntabsize 2500
rsdb/cua/buffersize 5000
sap/bufdir_entries 10000
zcsa/table_buffer_area 50000000
zcsa/db_max_buftab 10000
rtbb/buffer_length 30000
rtbb/max_tables 500

Area-dependent: I II III
rsdb/ntab/ftabsize 20000 30000 30000 !!!
zcsa/presentation_buffer_area 15000000 20000000 20000000
abap/buffersize 240000 240000 400000


Remark on program buffer (abap/buffersize):

A program buffer with 240 MByte is in most cases not sufficient for Release 4.0/4.5.
During production operation it should be enhanced, if required. For this, observe
the "swaps" in the program buffer in transaction ST02. Some 1,000 swaps a day can be
tolerated, but if you find more than 10,000 swaps a day, the buffer should be
enhanced. Note that imports of ABAP programs cause buffer fragmentation and
consequently swaps. To avoid this, reduce the number of transports in your
production system!


The enhancement of program buffers (abap/buffersize) can cause problems in the
memory administration:


Windows NT: PXA_NO_SHARED_MEMORY because of address space fragmentation. Defective
basis addresses of NT system DLLs fragment the address space of work processes. The
large related Shared Memory Segments (PXA, Extended Memory, ...) possibly cannot be
created, because the available free address space is being fragmented by these DLLs.
This leads to a start with the NOT-PXA buffer of 4 MB. As a workaround the parameter
em/address_space_MB can be reduced to 250 MByte (also refer to the internal Note
129813).


AIX: Note 98084 "AIX: ABAP programm buffer PXA larger than 256MB"


HP-UX and SNI: Because of the Shared Memory restrictions (see above), an enhancement
of the program buffer can lead to error PXA_NO_SHARED_MEMORY. In this case other
Shared Memory Segments have to be made smaller.


With HP-UX you have to consider the following:
If the total out of program buffer and EM is higher than 1000 MB, the program buffer
has to be in a pool:
if abap/buffersize + em/initial_size_MB > 1000 MB.
ipc/shm_psize_06 = -10 and
ipc/shm_psize_02 = -10
(This measure is necessary to avoid a Shared Memory fragmentation.)


The buffer sizes specified are standard installation values. After the production
startup, you have to adjust the parameters to the actual requirements. To do this,
call Transaction ST02. If displacements occur in column "Swaps" you should increase
the buffers in question (however, note that up to 10,000 swaps may occur in the
program buffer).

Export/import buffer:

The settings recommendations for the export/import buffer are area-independent and
depend on the application programs you use. As standard settings we recommend:


Release 4.0/4.5:
rsdb/obj/buffersize 4096 (KB) !!!
rsdb/obj/max_objects 5000 (buffer entries) !!!
rsdb/obj/large_object_size 8192 (bytes) !!!


As of Release 4.6:
rsdb/obj/buffersize 20000 (KB) !!!
rsdb/obj/max_objects 20000 !!!
rsdb/obj/large_object_size 8192 (bytes) !!!

If the export/import buffer is swapped a lot (more than 1000 swaps/day) then it
should be enlarged.


2. Local memory for work processes (roll memory)

***********************************************************************
******** Parameters with (*) only apply to UNIX. ***********
******** For NT see Note 88416. ***********
******** For Unix see Note 386605. ***********
***********************************************************************

ztta/roll_area (*) 6500000

ztta/roll_first (*) 1

3. Roll buffer and extended memory (except Windows NT)

Area-independent:
ztta/roll_extension(*) 500000000 !!!
AIX: 2000000000

(Note: When using the alternative Memory Management on AIX (see Notes 95454 and
124555), ztta/roll_extension must be set as is recommended in these notes.)
rdisp/ROLL_MAXFS (*) optimal: 32000, minimal: 16000
rdisp/PG_MAXFS (*) optimal: 32000, minimal: 16000
rdisp/ROLL_SHM(*) 8000 (up to 16000) !!!
rdisp/PG_SHM(*) 1000
em/global_area_MB for SAP kernel < 4.6D: 24 (default)
for SAP kernel >= 4.6D:
10% of em/initial_size_MB, maximum
(see also Note 329021) 255 - em/blocksize_KB / 1024 (AIX)
10% of em/address_space_MB (Windows)
255 (others)


Area-dependent: I II III
em/initial_size_MB(*) 512 750 (to 1000) 1000 (to 2000)


The specified values em/initial_size_MB and rdisp/ROLL_SHM are the standard
installation values. After production startup, you must adjust the parameters to the
actual requirements. To do this, call Transaction ST02. If the line "Extended
Memory" contains
"In memory" - "max. use" < 20% of "In memory"

you should enlarge the em/initial_size_MB (within the scope of the values entered in
parentheses above).

In other words: 20% extended memory should also be free at times of high load.

If the line "Roll area" contains
"Max. use" > "In memory"
you should increase rdisp/ROLL_SHM (within the above-mentioned values specified in
parentheses).


4. Heap memory (except Windows NT)

abap/heap_area_dia and abap/heap_area_nondia (new as of 03/11/1999):
In general, we recommend setting
abap/heap_area_dia(*) = abap/heap_area_nondia(*)
as follows:


AIX:

Standard: 180000000 (180 MByte)
If ES/TABLE = SHM_SEGS is used (Notes 95454 & 124555)
80000000 ( 80 MByte)


HP-UX:

up to HP-UX Releases smaller than 10.20:
600000000 with OS parameter: maxdsize = 640 MByte
as of HP-UX Release 10.20, the following size is possible:
920000000 with OS parameter: maxdsize = 944 MByte

SNI (SINIX): 350000000

           Note: Value 350000000 for abap/heap_area(non)dia is a standard value
which can be used for almost all SINIX/Reliant systems. In rare cases however,
memory management errors can occur. In this case you may be able to solve the
problem by reducing the parameter further (for example, 250000000).


DEC: 900000000

Sun: Standard: 900000000 (900 MByte)

Caution: If you set em/initial_size_MB > 1500, you must reduce

abap/heap_area_dia and abap/heap_area_nondia (see also

section 8f) in Note 97497).


Windows: Delete the profile paramter from the profile


abap/heaplimit(*) 20000000


Area-dependent: I II III

abap/heap_area_total (*) 750000000 750000000 1500000000

5. Basic information on the parameter settings
You must save your old profiles before the change. If the instance with the new
parameters does not start, you can use the old profile.
All parameter settings must be checked before being used (program sappfpar, in the
test system and so on).
Consider the architecture restrictions of the operating systems (for example, Shared
Memory restrictions). If you do not consider these restrictions errors and
terminations may be the result.
Consider that actual recommendations on the parameter settings by the TCC can only
be provided within the service sessions.

***********************************************************************

WARNING:
If the R/3 memory areas are set up too small (R/3 buffers, R/3 Extended Memory, and
so on), unnecessary performance problems may occur. If the memory areas are set up
too large, errors can occur when you start the R/3 instance, or runtime errors may
occur. The optimum settings are dependent on the hadware (CPU and RAM), the R/3
release and the operating system release. The TCC Services GoingLive and EarlyWatch
will provide you with individual recommendations for your system.

***********************************************************************


6. Miscellaneous

Also see the sections "Swap Space", "File System Cache", "Dependencies of the
operating systems", and "Questions and answers" in Note 97497.


7. Additional notes:


Notes for IBM AS/400
139326 AS/400: Memory Management in Release as of 4.6A
126210 AS/400: nametab buffer larger than 16MB
123418 AS/400: Performance 4.0B on AS/400
121625 AS/400: buffer size
119754 AS/400: Parameter for nametab buffer
110157 AS/400: Generic table buffer
79478 AS/400: ERROR => ShmCreate (...)
73628 AS/400: MCH3601 in rstsac2/convert_ABAP_to_C/9
44695 Memory Management in Release as of 3.0C, AS/400

Notes on IBM S/390
326949 Shared Memory Management S/390 Application Server

8. Questions and answers

(See also "Questions and answers" in Notes 33576 and 44695 and
the SAP TechNet article "Memory management as of Release 3.0C"
(http://sapnet.sap-ag.de/TechNet -> System Monitoring
-> Knowledge Base -> New Memory Management.)

For background knowledge on memory management of R/3 you can also
refer to the book "R/3 Performance Optimization"
(ISBN 0-7821-2563-8)


a) Why is em/initial_size_MB in area III (RAM > 2000 MByte) set to 2000 MByte in so
restrictive a manner?

The main reason is that the 32-bit architecture available to us at present can
manage an address space of a maximum of 2GB - 3.8GB (depending on the operating
system). For category III, the address space is made up as follows:
em 1024MB (shared)
PXA 400MB (shared)
Roll 64MB (shared)
sonst. 150MB (shared)
heap 1500MB (local)
stack 50MB (local)
..........
3138MB


b) Which parameters should be changed for prevention ?

Parameters ztta/roll_extension, rdisp/roll_MAXFS, abap/heap_area_(non)dia,
ABAP/heap_area_total, and rdisp/pg_MAXFS do not influence the performance (in the
sense of "velocity"). They are only "stability-relevant", that is, they prevent
programs from terminating. These parameters should therefore be changed for
prevention.
Example:
Even if the system "never" needs 256 MB of paging (rdisp/pg_MAXFS = 32000), you
should not economize on the paging file. It is senseless to wait until the year-end
settlement terminates since the paging area was configured too small and only
afterwards is the paging area to be configured "on request".
Similar examples apply to the other parameters.

As opposed to this, the buffer sizes (abap/buffer_size ... ) only influence the
response time. In the case of emergency you can wait until the buffer starts to swap
and then raise the response time. (However, you can also set it "large enough"
immediately).

Source code corrections

回复6:
 
to: Ben & newcat  好久没来, 谢谢两位还记得我
to:aming&schwalbe 
你们的系统export/import的参数设置的确是有些问题. 但并不是你export/import的buffer大小不够,而是你系统中为export/import预留的最大object数值不够大.
系统当前的object数为2000个且已经被用完了,所以尽管还有82.07%和22.91%的export/import空间却不能够被利用.
rsdb/obj/max_objects   =2000 改到  5000
rsdb/obj/buffersize  = 4096 改到  8192 ( for schwalbe)                      
情况会有改善的.
schwalbe 你的program buffer size 有点小了,我不知道你的软硬件具体情况所以不好给出具体的数字.
如果是32位R/3跑在unix系统下的话尤其要小心,仔细调整pool 10和40的值,不然系统很可能起不来.  
我个人认为没有必要一定要刻意追求所有的SWAP一直是0.  


回复7:多谢LARRY,我仔细看才发现了问题所在,德文的格式中,“,”和“。”刚好是调转的

相关:

What's the min swap system? Depends on release, kernel(32/64) and platforms(NT/UNIX/LINUX/AS400)...
Basis idea for MIN SWAP for 20-30current users: 3 X Memory(i.e. 1GB memory needs at least 3GB memory.
But on the Basis Certification TEST the answer is 3.5GB(3 X Memory + 500MB)
For 64bit kernel, please use at least 18-20GB. Use the whole disk if it's possible for beter performance
James Yen - 颜心德

来在disk array里留两个备用磁盘还是有好处的。。。


swap太小会出Memory问题导致DUMP的。

SAP官方:Swap Space Requirements、SAP Memory Management

其它讨论:

首先确认SAP服务器多久没有重启了,如果是有几个月没有重启,则ST02的SWAP一般会出现红色;这个一般重启SAP可以release swap的问题。

如果SAP重启几天后SWAP就出现红色,根据SAP服务器的硬件,可以适当调整RZ10的参数。

1、调整前一定先把/usr/sap/DEV/SYS/Profile进行备份,这个非常重要。

2、对具体哪个参数进行调整,T-code: ST02,在出现红色的地方“双击”进入另一个界面,然后点菜单栏的“当前参数”就能看到它对应的Profile Parameter, Value Unit, Comment;然后根据它的现有值 x 0.1 = 要调整的数值。

T_Code:RZ10(调整),RZ11(查看参数值、默认值和参数说明)

eg: swap出现红色,双击后对应参数值:rtbb/buffer_length 10000 kB
  那么在RZ10把这个参数调整为:11000

3、RZ10调整后要进行激活,激活后要重新启动SAP MMC;如果出现调整后SAP MMC无法启动,那么重启SAP服务器在重启SAP MMC,如果还是无法起动,那么把刚备份的原Profile目录覆盖新的Profile目录,然后再重新调整,根据它的现有值 x 0.05 = 要调整的数值。

调整后再观测ST02的变化,如果原来都没有调整过那一般要按照上面的调整方式调整几次ST02就相对比较正常了

 

相关文章:

SAP 详解ST02

问&#xff1a;在st02中看到&#xff0c;Program和Export/Import的Swap出现红的了&#xff0c;这个是什么原因啊&#xff0c;是不是对系统的性能有影响啊&#xff0c;是否应该调整一些参数啊。要怎么调整呢&#xff1f; 复1&#xff1a;双击红色的部分就可以看到相应的参数修改…...

Go程序当父进程被kill,子进程也自动退出的问题记录

平常我们启动一个后台进程&#xff0c;会通过nouhp &的方式启动&#xff0c;这样可以在退出终端会话的时候&#xff0c;进程仍然可以继续在后台执行(进程的父进程id会从原来的bash进程变成1) 在go程序中&#xff0c;通过nouhp &的方式启动子进程&#xff0c;预期是即使…...

window10 下使用docmer-compose使用mysql镜像部署mysql

1. 在wins中找到store&#xff0c;安装Debian 2. 在桌面右键点击 linux shell窗口 3. 安装docker 4. 启动docker&#xff1a; service docker start 5. 配置加速器&#xff0c;为了拉取镜像更快&#xff0c;修改后得重新启动docker&#xff1a; vi /etc/docker/daemon.json…...

软件测试补充

软件开发的生命周期&#xff1a;需求-计划-设计-开发编码-测试-运行维护-上线 那我们的微信APP来进行举例: 需求:我需要你们团队做这样一个社交软件&#xff0c;能够像QQ一样实现聊天功能&#xff0c;发布说说的功能&#xff0c;能够群聊&#xff0c;可以转账 计划:计划软件…...

【算法】Tire字符串

作者&#xff1a;指针不指南吗 专栏&#xff1a;算法篇 &#x1f43e;或许会很慢&#xff0c;但是不可以停下&#x1f43e; 文章目录1.Trie的基本思想1.1什么是Trie1.2字符串条件1.3如何存储字符串1.4如何查找字符串2.Trie的代码实现2.1怎么用数组建树2.2完整代码1.Trie的基本思…...

【C++】STL——list的模拟实现

list的模拟实现 文章目录list的模拟实现一、list三个基本类的模拟实现总览二、节点类接口实现模拟实现构造函数三、迭代器类接口实现1.正向迭代器默认成员函数构造函数六种运算符重载 */->//--/!/2.反向迭代器四、list类接口实现1.默认成员函数1.1.构造函数1.2.析构函数1.3.…...

SpringBoot小区物业管理系统

文章目录 项目介绍主要功能截图:后台登录车位收费管理物业收费管理投诉信息管理保修信息管理基础信息管理数据分析部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获…...

外网跨网远程控制内网计算机3种方案

远程控制&#xff0c;通俗来讲就是在自己个人电脑直接远程访问另台主机电脑桌面操作。 如何远程控制电脑&#xff1f;远程控制别人计算机的方案通常有两种&#xff0c;一种是开启电脑系统自带的远程桌面功能&#xff0c;如果涉及跨网内、外网互通可以同时用快解析内网映射外网&…...

记录偶发更新失败问题

一&#xff0c;代码如下Transactional(rollbackFor Exception.class) public void updateDelivery(){ // 1.新增反馈记录 // 2.更新订单状态&#xff0c;及其他字段 // 3.新增变更履历 // 4.其他新增逻辑及与其他系统交互逻辑 }二&#xff0c;问题偶尔出现&#xff08;概率极低…...

AI环境搭建步骤(Windows环境)

1. 安装好Anaconda3版本(1) 安装链接&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?CM&OD本文使用Anaconda3下载链接&#xff1a;Anaconda5(2) 注意安装anaconda时一定要把环境变量加入windows环境中。要没有勾选&#xff0c;安装完后还有手动加入…...

Linux系统之history命令的基本使用

Linux系统之history命令的基本使用一、history命令介绍二、本地环境检查1本地系统版本2.检查操作系统的内核版本三、history的命令帮助四、history命令的基本帮助1.查看所有历史执行命令2.指定历史命令条数3.清除历史命令记录4.引用历史命令5.将历史文件中的信息读入到当前缓冲…...

花7000报了培训班,3个月后我成功“骗”进了阿里,月薪拿16K....

“月薪4000元不如报名学IT&#xff0c;挑战年薪百万”这是大多数培训班在互联网上宣传的口号&#xff0c;简单的16个字却戳中了很多人的痛点&#xff0c;同龄人买车买房&#xff0c;自己却拿着微薄的工资连好一点的房子都租不起&#xff0c;这句口号 彻底激起了底层员工的焦虑&…...

Java-枚举类的使用(详解)

枚举类的使用前言一、何为枚举类&#xff1f;二、自定义枚举类&#xff08;JDK1.5之前&#xff09;1、实现1.1 属性1.2 构造器2、代码演示三、用关键字enum定义枚举类&#xff08;JDK 1.5&#xff09;1、实现1.1 属性1.2 构造器2、代码演示四、Enum类的方法五、实现接口的枚举类…...

Docker----------Docker轻量级可视化工具Portainer/监控之 CAdvisor+InfluxDB+Granfana

1.是什么 Portainer 是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便地管理Docker环境&#xff0c;包括单机环境和集群环境。 2 官网 官网 https://www.portainer.io/ https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux 3.…...

景嘉微7201

220112-驱动与固件-景嘉微7201驱动与固件-三期超翔TF830JM7201显卡黑屏、花屏、竖线或待机唤醒黑屏JM72系列为了让驱动和系统内核解绑&#xff0c;驱动包含核内和核外两个驱动&#xff0c;两个驱动请都务必安装&#xff1b;最近JM7201 替代R7 340 发货了&#xff0c;导致对应通…...

串口、终端应用程序 API termios

UART简介 串口全称为串行接口&#xff0c;也称为COM接口&#xff0c;串行接口指的是比特一位位顺序传输&#xff0c;通信线路简单。使用两根线就可以实现双向通信&#xff0c;一条为TX&#xff0c;一个为RX。串口通信距离远&#xff0c;但速度相对慢&#xff0c;是一种常用的工…...

【服务器搭建】教程七:如何为自己的网站添加运行时间?

前言 哈喽&#xff0c;大家好&#xff0c;我是木易巷&#xff01; 上一篇服务器搭建个人网站教程是给大家介绍了&#xff1a;网站如何添加备案号&#xff1f; 今天分享&#xff1a;如何为自己的网站添加运行时间&#xff1f; 木易巷添加网页运行时间后的效果 其实和昨天的添…...

【消息中间件】Apache Kafka 教程

文章目录Apache Kafka 概述什么是消息系统&#xff1f;点对点消息系统发布 - 订阅消息系统什么是Kafka&#xff1f;好处用例需要KafkaApache Kafka 基础&#xff08;一&#xff09;消息系统1、点对点的消息系统2、发布-订阅消息系统&#xff08;二&#xff09;Apache Kafka 简介…...

ARM基础

文章目录1.ARM成长史1.1 ARM发展的里程碑11.2 ARM发展的里程碑21.3 ARM发展的里程碑31.4 ARM发展的里程碑42.ARM的商业模式和生态系统3.先搞清楚各种版本号3.1 ARM 的型号命名问题3.2 ARM 的几种版本号3.3 ARM型号的发展历程4.SoC和CPU的区别 & 外设概念的引入4.1 SoC和CPU…...

Python排序 -- 内附蓝桥题:错误票据,奖学金

排序 ~~不定时更新&#x1f383;&#xff0c;上次更新&#xff1a;2023/02/28 &#x1f5e1;常用函数&#xff08;方法&#xff09; 1. list.sort() --> sort 是 list 的方法&#xff0c;会直接修改 list 举个栗子&#x1f330; li [2,3,1,5,4] li.sort() print(li) …...

容器化部署是什么意思?有什么优势?

多小伙伴不知道容器化部署是什么意思&#xff1f;不知道容器化部署有什么优势&#xff1f;今天我们就来一起看看。 容器化部署是什么意思&#xff1f; 容器化部署是指将软件代码和所需的所有组件&#xff08;例如库、框架和其他依赖项&#xff09;打包在一起&#xff0c;让它…...

1.设计模式简介

一、设计模式的目的 1. 代码重用性 2. 可读性 3. 可扩展性 4. 可靠性 5. 高内聚&#xff0c;低耦合 二、设计模式七大原则 1. 单一职责原则 1&#xff09;降低类的复杂度&#xff0c;一个类只负责一项职责 2&#xff09;提高类的可读性&#xff0c;可维护性 3&#x…...

【算法题解】实现一个包含“正负数和括号”的基本计算器

这是一道 困难 题。 题目来自&#xff1a;leetcode 题目 给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 注意: 不允许使用任何将字符串作为数学表达式计算的内置函数&#xff0c;比如 eval() 。 提示&#xff1a; s 由数字、‘’、‘-’…...

网站服务器如何防护攻击?网站服务器被挂马如何检测

网站服务器是指安装在互联网上的服务器&#xff0c;主要用于提供网站服务。由于网站服务器的重要性&#xff0c;它也是攻击者的活动焦点&#xff0c;因此如何防护攻击就显得尤为重要。本文将分析网站服务器是如何被攻击的以及如何防护攻击。 网站服务器是怎么被攻击的? 网站…...

JavaSE16-面向对象-接口

文章目录一、概念二、格式1.使用interface来定义接口2.implements实现接口三、接口中的成员1.常用成员2.新增成员&#xff08;不重要&#xff09;2.1 默认方法2.2 静态方法2.3 私有方法四、继承关系 & 实现关系五、抽象类和接口的使用区别一、概念 接口就是规范\规则&…...

安卓设备蓝牙键盘快捷键

安卓设备蓝牙键盘快捷键前言注意鼠标按键系统快捷键桌面快捷键输入法快捷键其它快捷键旧快捷键&#xff08;已失效&#xff09;前言 安卓设备可以通过蓝牙或有线外接键盘&#xff0c;值得一提的是&#xff0c;安卓平板连接蓝牙键盘和蓝牙鼠标是一个不错的组合。本文以鸿蒙3.0平…...

Puppeteer项目结构梳理

最近接触了一个个人感觉很奈斯的项目&#xff0c;故记录思路如下&#xff1a; puppeteer项目梳理&#xff1a; 入口文件 run.js 入口命令 node run.js YourConfig.json 1、我们可以在自己的config.json里面设置好 ①、登录的用户名密码;aws或其它服务器的access等id,accessKey…...

(02)Unity HDRP Volume 详解

1.概述这篇文章主要针对HDRP中的Volume和Volume Post-processing进行解释&#xff0c;针对于各个组件只能进行部分参数的解释&#xff0c;具体的信息可参考官方资料&#xff0c;这里只是对官方文档的图片效果补充以及笔者自己的理解。看到这里进入正文&#xff0c;请确保你的Un…...

拒绝B站邀约,从月薪3k到年薪47W,我的经验值得每一个测试人借鉴

有时候&#xff0c;大佬们总是会特立独行。因为像我这样的常人总是想不通&#xff0c;究竟是怎样的情境&#xff0c;连B站这样的大厂面试都可以推掉&#xff1f; 缘起一通电话&#xff0c;踏出了改变人生轨迹的第一步 我是小瑾&#xff0c;今年28岁&#xff0c;2016年毕业于陕…...

分享一种实用redis原子锁的方式

1. setnx(lockkey, 当前时间过期超时时间) &#xff0c;如果返回1&#xff0c;则获取锁成功&#xff1b;如果返回0则没有获取到锁&#xff0c;转向2。2. get(lockkey)获取值oldExpireTime &#xff0c;并将这个value值与当前的系统时间进行比较&#xff0c;如果小于当前系统时间…...

个人网站收款问题/如何建立网站服务器

一 . 概述 对一个切入点来说,我们是可以织入大量的通知进行增强的. 这里就出现了一个拦截器链的问题,还有一个问题就是执行顺序的问题. 二 .拦截器链 当出现一个连接点的大量通知的问题时,spring使用的是拦截器链来进行解决, 这和我们一般认为的拦截器链的运行方式时一致,但是我…...

怎么把网站放到空间/成都最新热门事件

2019.08.29学习整理 绑定方法与非绑定方法 绑定方法 对象绑定方法 类的绑定方法 绑定方法&#xff1a;特殊之处&#xff0c;绑定给谁就是谁来调&#xff0c;并且会把自身调过来 类的绑定方法 绑定给类&#xff0c;类来调用&#xff0c;会把类自身传过来 类的绑定方法用在什么地…...

网站界面设计说明/站牛网是做什么的

构建这里搜集了用来构建应用程序的工具。Apache Maven&#xff1a;Maven使用声明进行构建并进行依赖管理&#xff0c;偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置&#xff0c;所以维护起来相当困难。Gradle&#xff1a;Gradle…...

王野天图片/欧美seo查询

FPGA图像加速解决方案来了参考文章&#xff1a; &#xff08;1&#xff09;FPGA图像加速解决方案来了 &#xff08;2&#xff09;https://www.cnblogs.com/alifpga/p/9285759.html 备忘一下。...

论网站建设情况/百度怎么投放广告

一、基本原理 1.数据源无关的数据统一操作&#xff0c;LINQ语句做了一个程序语句到各种数据源之间的抽象统一中间件。where开始&#xff0c;select或group结束. order 和group&#xff0c;select new等各种语句 。 2.用了拓展方法&#xff0c;在generic枚举类型来做&#xff0…...

芜湖网站建设/餐饮品牌全案策划

Matplotlib是用于数据可视化的最流行的Python包之一。 它是一个跨平台库&#xff0c;用于根据数组中的数据制作2D图。 它提供了一个面向对象的API&#xff0c;有助于使用Python GUI工具包&#xff08;如PyQt&#xff0c;WxPythonotTkinter&#xff09;在应用程序中嵌入绘图。 它…...