oracle数据字典详解:内部RDBMS(X$)表、数据字典表、动态性能(v$
我们所说的数据字典由四部分组成:( 1 )内部 RDBMS(X$) 表( 2 )数据字典表( 3 )动态性能 (v$) 视图( 4 )数据字典视图 一.内部 RDBMS ( V$ )表 X$ 表是 oracle 数据库的核心部分,用于跟中数据库内部信息,维护数据库的正常运行。 X$ 是加密命名的
我们所说的数据字典由四部分组成:(1)内部RDBMS(X$)表(2)数据字典表(3)动态性能(v$)视图(4)数据字典视图
一.内部RDBMS(V$)表
X$表是oracle数据库的核心部分,用于跟中数据库内部信息,维护数据库的正常运行。X$是加密命名的,而且oracle官方文档不做说明;最为人所熟知的是X$BH、X$KSMSP等:
X$表是oracle数据库的运行基础,在数据库启动时有oracle应用程序自动创建。所以oracle不允许SYSDBA以外的用户直接访问。
一般而言,对于这种对象,进行观察、发现、研究X$表的好办法是借用oracle的AUTOTRACE功能,当查询一些视图时,可以发现这些X$底层表;
如下:
23:26:35 scott@felixSQL>set autot traceonly;
23:47:54 scott@felixSQL>select*from v$parameter;
347rows selected.
Execution Plan
----------------------------------------------------------
Planhashvalue:1128103955
------------------------------------------------------------------------------
|Id | Operation |Name |Rows | Bytes |Cost(%CPU)|Time |
------------------------------------------------------------------------------
| 0|SELECTSTATEMENT | | 1| 4414| 1(100)|00:00:01|
|* 1| HASHJOIN | | 1| 4414| 1(100)|00:00:01|
|* 2| FIXEDTABLEFULL| X$KSPPI | 1| 249| 0 (0)|00:00:01|
| 3| FIXEDTABLEFULL| X$KSPPCV| 100| 406K| 0 (0)|00:00:01|
------------------------------------------------------------------------------
Predicate Information(identifiedby operationid):
---------------------------------------------------
1-access("X"."INDX"="Y"."INDX")
filter(TRANSLATE("KSPPINM",'_','#')NOTLIKE'#%'OR
"KSPPSTDF"='FALSE'ORBITAND("KSPPSTVF",5)>0)
2-filter("X"."INST_ID"=USERENV('INSTANCE')AND
BITAND("KSPPIFLG",268435456)=0ANDTRANSLATE("KSPPINM",'_','#')NOT
LIKE'##%')
Statistics
----------------------------------------------------------
8 recursive calls
0 dbblock gets
2 consistent gets
0 physicalreads
0 redosize
38375 bytes sent viaSQL*Netto client
776 bytes received viaSQL*Netfrom client
25 SQL*Net roundtrips to/from client
0 sorts(memory)
0 sorts(disk)
347 rows processed
再看这个X$KVIT([K]ernel Layer Performance Layer[V][I]nformation tables [T]ransitory Instance parameter)这个视图记录的是和实例相关的一些内部参数设置,可以看到一些很有意思的内容;
select kvittag,kvitval,kvitdscfrom x$kvit;
数据字典表:
数据字典表用以存储表、索引、约束以及其他数据库结构的信息。这些对象通常是以‘$’结尾(例如:TAB$、OBJ$、TS$等)
Bsq是非常重要的一个文件,其中包含了数据字典的定义以及注释说明,每个视图深入学习oracle数据库的用户都应该仔细阅读以下该文件该文件位于$ORACLE_HOME/rdbms/admin目录下:
(在11g中bsq文件被分别归类到不通的.bsq文件)。
[oracle@felixadmin]$ pwd
/u01/app/oracle/product/11.2.0/db_1/rdbms/admin
[oracle@felixadmin]$ ls -l*.bsq
-rw-r--r-- 1 oracle oinstall 25905 Mar 19 2009 daw.bsq
-rw-r--r-- 1 oracle oinstall 91730 Jul 22 2011 dcore.bsq
-rw-r--r-- 1 oracle oinstall 2832 Oct 23 2006 ddm.bsq
-rw-r--r-- 1 oracle oinstall 674 Jul 14 2008 ddst.bsq
-rw-r--r-- 1 oracle oinstall 17993 Feb 23 2010 denv.bsq
-rw-r--r-- 1 oracle oinstall 1364 Oct 31 2005 dexttab.bsq
-rw-r--r-- 1 oracle oinstall 4937 Oct 31 2005 dfmap.bsq
-rw-r--r-- 1 oracle oinstall 728 Oct 31 2005 djava.bsq
-rw-r--r-- 1 oracle oinstall 33697 Apr 26 2011 dlmnr.bsq
-rw-r--r-- 1 oracle oinstall 9632 Dec 8 2009 dmanage.bsq
-rw-r--r-- 1 oracle oinstall 25509 Jun 8 2007 dobj.bsq
-rw-r--r-- 1 oracle oinstall 32867 May 18 2011 doptim.bsq
-rw-r--r-- 1 oracle oinstall 47093 Nov 12 2009 dpart.bsq
-rw-r--r-- 1 oracle oinstall 16679 Jan 8 2007 dplsql.bsq
-rw-r--r-- 1 oracle oinstall 17811 Oct 9 2009 drac.bsq
-rw-r--r-- 1 oracle oinstall 128181 May 13 2011 drep.bsq
-rw-r--r-- 1 oracle oinstall 139898 Jun 11 2010 dsec.bsq
-rw-r--r-- 1 oracle oinstall 17751 Mar 9 2009 dsqlddl.bsq
-rw-r--r-- 1 oracle oinstall 19958 Jul 30 2008 dsummgt.bsq
-rw-r--r-- 1 oracle oinstall 15830 Apr 29 2011 dtools.bsq
-rw-r--r-- 1 oracle oinstall 5474 Oct 31 2006 dtxnspc.bsq
-rw-r--r-- 1 oracle oinstall 2495314 Sep17 2011 recover.bsq
-rw-r--r-- 1 oracle oinstall 53130 Jul 14 2008 sql.bsq
这些数据字典表对于数据库的稳定运行生死攸关,所以通常oracle不允许直接对数据字典进行操作。当用户执行DDL和DML操作时,在后台oracle讲这些操作解析为对于数据字典的自动执行。
以下是某个bsq的内容:
[oracle@felixadmin]$ cat ddm.bsq
rem pstengar 05/22/06-add audit$ columnto model$
rem mmcracke 03/14/05- creation
rem dataminingmodeltable
createtable model$
(
obj# numbernotnull, /* unique model object id */
func number, /* mining function (bit flags)*/
alg number, /* mining algorithm (bit flags)*/
bdur number, /* time to build */
msize number, /* size of model (MB) */
version number, /* model version */
audit$ varchar2("S_OPFL")notnull /* auditing options */
)
storage(maxextentsunlimited)
tablespaceSYSAUX
/
createuniqueindex model$idx
on model$(obj#)
storage(maxextentsunlimited)
tablespaceSYSAUX
/
rem dataminingmodel components table
createtable modeltab$
(
mod# number notnull, /* model object id */
obj# number notnull, /* table object id */
typ# number notnull /* model table type */
)
storage(maxextentsunlimited)
tablespaceSYSAUX
/
createuniqueindex modeltab$idx
on modeltab$(mod#, typ#)
storage(maxextentsunlimited)
tablespaceSYSAUX
/
rem dataminingmodelattributetable
createtable modelatt$
(
mod# number notnull, /* model object id */
name varchar2(30) notnull, /* attribute name */
atyp number, /* attribute type */
dtyp number notnull, /* data type */
length number, /* data length */
precision# number, /* precision */
scale number, /* scale */
properties number /* properties */
)
storage(maxextentsunlimited)
tablespaceSYSAUX
/
createindex modelatt$idx
on modelatt$(mod#)
storage(maxextentsunlimited)
tablespaceSYSAUX
/
rem dataminingmodelsettingstable
createtable modelset$
(
mod# number notnull, /* model object id */
name varchar2(30) notnull, /* setting name */
value varchar2(4000), /* setting value */
properties number /* properties */
)
storage(maxextentsunlimited)
tablespaceSYSAUX
/
createindex modelset$idx
on modelset$(mod#)
storage(maxextentsunlimited)
tablespaceSYSAUX
/
Rem
Rem Sequencefor export/import
createsequence DM$EXPIMP_ID_SEQ
/
grantselecton DM$EXPIMP_ID_SEQtopublic
/
[oracle@felixadmin]$
例如:当创建一张数据表时,oracle将会在后台执行一系列的内部操作,比如像OBJ$表中插入数据、向tab$表中记录数据、向col$表中记录字段信息、向con$记录约束信息、向seg$中记录数据段信息。
例如:
进行一个10046trace:
00:56:54 scott@felixSQL>alter session set events '10046 tracename context forever,level 12';
Session altered.
01:00:18 scott@felixSQL>create table felix2 as select * fromdba_objects;
Table created.
01:00:39 scott@felixSQL>select value from v$diag_info wherename='Default Trace File';
VALUE
-----------------------------------------------------------------------------------/u01/app/oracle/diag/rdbms/felix/felix/trace/felix_ora_19538.trc
01:00:48 scott@felixSQL>
摘录一些跟中文件信息,下面这个是前台的DDL语句在后台是怎样被转化成一系列的DML语句进行执行的,首先记录的是创建语句:
[oracle@felix ~]$ cat/u01/app/oracle/diag/rdbms/felix/felix/trace/felix_ora_19538.trc| grep create
createtable felix2 as select * from dba_objects
m_stmt:='call mderr.raise_md_error(''MD'',''SDO'', -13391, ''GeoRaster reserved names cannot be used to create regulartriggers.'')';
m_stmt:='beginSDO_GEOR_UTL.createDMLTrigger(:1,:2); end;';
然后是向obj$ 、con$、 seg$、 tab$、 col$表中增加信息:
[oracle@felix ~]$ cat/u01/app/oracle/diag/rdbms/felix/felix/trace/felix_ora_19538.trc| grep insert
m_stmt:='insert into sdo_geor_ddl__table$$values (1)';
m_stmt:='insert into sdo_geor_ddl__table$$values (2)';
insertintoobj$(owner#,name,namespace,obj#,type#,ctime,mtime,stime,status,remoteowner,linkname,subname,dataobj#,flags,oid$,spare1,spare2,spare3)values(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18)
insertintoseg$(file#,block#,type#,ts#,blocks,extents,minexts,maxexts,extsize,extpct,user#,iniexts,lists,groups,cachehint,hwmincr, spare1, scanhint, bitmapranges)values(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,DECODE(:17,0,NULL,:17),:18,:19)
insertintotab$(obj#,ts#,file#,block#,bobj#,tab#,intcols,kernelcols,clucols,audit$,flags,pctfree$,pctused$,initrans,maxtrans,rowcnt,blkcnt,empcnt,avgspc,chncnt,avgrln,analyzetime,samplesize,cols,property,degree,instances,dataobj#,avgspc_flb,flbcnt,trigflag,spare1,spare6)values(:1,:2,:3,:4,decode(:5,0,null,:5),decode(:6,0,null,:6),:7,:8,decode(:9,0,null,:9),:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22,:23,:24,:25,decode(:26,1,null,:26),decode(:27,1,null,:27),:28,:29,:30,:31,:32,:33)
insertintocol$(obj#,name,intcol#,segcol#,type#,length,precision#,scale,null$,offset,fixedstorage,segcollength,deflength,default$,col#,property,charsetid,charsetform,spare1,spare2,spare3)values(:1,:2,:3,:4,:5,:6,decode(:5,182/*DTYIYM*/,:7,183/*DTYIDS*/,:7,decode(:7,0,null,:7)),decode(:5,2,decode(:8,-127/*MAXSB1MINAL*/,null,:8),178,:8,179,:8,180,:8,181,:8,182,:8,183,:8,231,:8,null),:9,0,:10,:11,decode(:12,0,null,:12),:13,:14,:15,:16,:17,:18,:19,:20)
oracle通过将DDL解析为dml操作,并将这些操作记录在数据字典表中,通过将这些信息反向解析,可以得到原始的创建语句。
静态数据字典视图:
由于X$表和数据字典表通常不能直接访问,oracle创建了静态数据字典视图提供用户对于数据字典信息的访问,由于这些信息相对稳定、不能直接修改,所以又被称为静态数据字典视图。静态数据字典视图是由catalog.sql脚本创建(在$ORACLE_HOME/rdbms/admin下)
(1) USER_视图包含了用户所拥有的相关对象的信息,用户可以通过这个视图查询自己拥有的对象信息。
(2) ALL_类视图包含了用户有权限访问的所有对象的信息。
(3) DBA_类视图包含了数据库所拥有的所有相关对象的信息,用户需要select any table权限才能访问。
01:31:13 scott@felixSQL>select table_name,tablespace_namefrom user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------------------------------------ -----
DEPT USERS
EMP USERS
BONUS USERS
SALGRADE USERS
FELIX2 USERS
常用的数据字典举例:
(1) DICT_COLUMNS
01:54:55 scott@felixSQL>SELECT COLUMN_NAME,COMMENTSFROM DICT_COLUMNSWHERE TABLE_NAME='DICT';
COLUMN_NAME COMMENTS
------------------------------ ----------------------------------------
TABLE_NAME Nameoftheobject
COMMENTS Textcommentontheobject
这个视图记录了字典的很重要的信息,例如找到具有较多字段的TOP 10字典视图:
scott@felixSQL>select*from(
select table_name,count(*)
from dict_columns
groupby table_name
orderby2desc)
whererownum10;
TABLE_NAME COUNT(*)
------------------------------------------------------------ ----------
GV$SESSION 98
V$SESSION 97
GV$ACTIVE_SESSION_HISTORY 97
DBA_HIST_ACTIVE_SESS_HISTORY 97
V$ACTIVE_SESSION_HISTORY 96
GV$SQL 88
V$SQL 87
GV$SQLAREA 83
V$SQLAREA 82
DBA_HIST_SQLSTAT 78
通过DICT视图可以很快的找到这些和COLUMN有关的视图:
scott@felixSQL>select table_namefrom dictwhere table_namelike'DBA%COLUMNS';
TABLE_NAME
------------------------------------------------------------
DBA_APPLY_CONFLICT_COLUMNS
DBA_APPLY_DML_CONF_COLUMNS
DBA_APPLY_KEY_COLUMNS
DBA_APPLY_TABLE_COLUMNS
DBA_AUDIT_POLICY_COLUMNS
DBA_CLU_COLUMNS
DBA_COMPARISON_COLUMNS
DBA_CONS_COLUMNS
DBA_CONS_OBJ_COLUMNS
DBA_CUBE_DIM_VIEW_COLUMNS
DBA_CUBE_HIER_VIEW_COLUMNS
DBA_CUBE_VIEW_COLUMNS
DBA_ENCRYPTED_COLUMNS
DBA_IND_COLUMNS
DBA_JOIN_IND_COLUMNS
DBA_LOG_GROUP_COLUMNS
DBA_OLDIMAGE_COLUMNS
DBA_PART_KEY_COLUMNS
DBA_PUBLISHED_COLUMNS
DBA_REPFLAVOR_COLUMNS
DBA_REPKEY_COLUMNS
DBA_STREAMS_COLUMNS
DBA_STREAMS_KEEP_COLUMNS
DBA_SUBPART_KEY_COLUMNS
DBA_SUBSCRIBED_COLUMNS
DBA_TAB_COLUMNS
DBA_UPDATABLE_COLUMNS
27rows selected.
(2) OBJ$/DBA_OBJECTS/OBJ
OBJ$是一个底层的数据字典表,其中记录了数据库中所有对象的信息,DBA_OBJECTS基于OBJ$建立,一脉相承地,ALL_OBJECTS和USER_OBJECTS视图也随之建立;
OBJ是对于USER_OBJECTS建立的同义词;其创建语法如下:
CREATE PUBLICSYNONYM OBJ FIR SYS.USER_OBJECTS;
02:02:33 scott@felixSQL>select object_name,object_typefrom obj;
OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------
PK_DEPT INDEX
DEPT TABLE
EMP TABLE
PK_EMP INDEX
BONUS TABLE
SALGRADE TABLE
FELIX2 TABLE
(3)*_SOURCE视图
DBA_SOURCE/ALL_SOURCE/USER_SOURCE用于保存存储对象的源码。这类视图存储的对象包括function/java/packge/packgebody/procedure/trigger/type/typebody等;
02:06:47 scott@felixSQL>desc dba_source;
Name Null? Type
--------------------------------------
OWNER VARCHAR2(30)
NAME VARCHAR2(30)
TYPE VARCHAR2(12)
LINE NUMBER
TEXT VARCHAR2(4000)
通过TEXT字段能够获得相关对象创建的脚本;
动态性能视图:
动态性能视图(V$)(dynamicperformance view)记录了数据库运行时信息和统计数据,大部分动态性能视图被实时更新以反映数据库的当前状态。
(1) GV$和V$视图
数据库启动时,oracle动态创建X$表,在此基础之上,oracle创建了GV$和V$视图。从oracle 8开始GV$视图开始被引入,其含义是Global,除一些特例之外,每个V$视图都有一个对应的GV$视图存在;
GV$视图的产生是为了满足OPS/RAC环境的需要:
每个V$视图都包含一下类似语句,用于限制返回当前实例的信息:、
Whereinst_id=USERENV(‘Instance’);
用单实例进行测试如下(如果是rac环境的话返回的是多个实例名称):
02:41:54 scott@felixSQL>select inst_id,instance_name,statusfrom gv$instance;
INST_ID INSTANCE_NAME STATUS
---------- -------------------------------- ------------------------
1 felix OPEN
而V$视图只会返回本实例上的实例名:
02:41:12 scott@felixSQL>select instance_number,instance_name,statusfrom v$instance;
INSTANCE_NUMBER INSTANCE_NAME STATUS
--------------- -------------------------------- ------------------------
1 felix OPEN
ORACLE提供了一些特殊视图用以记录其他视图的创建方式,v$fixed_view_definition就是其中之一,从GV$FIXED_TABLE和V$FIXED_TABLE开始,我们来看一下GV$视图和v$视图的创建方式:
V$视图的创建方式:
SQL>select*from v$fixed_view_definition where view_name='V$FIXED_TABLE';
VIEW_NAME VIEW_DEFINITION
-----------------------------------------------------------------------------------
V$FIXED_TABLE select NAME, OBJECT_ID ,TYPE, TABLE_NUMfrom GV$FIXED_TABLEwhere inst_id=USERENV('Instance')
GV$视图的创建方式:
SQL>select*from v$fixed_view_definition where view_name='GV$FIXED_TABLE';
VIEW_NAME VIEW_DEFINITION
-------------- --------------------------------------------------------------------------------
GV$FIXED_TABLE select inst_id,kqftanam, kqftaobj,'TABLE', indxfrom x$kqftaunionallselect i
nst_id,kqfvinam, kqfviobj,'VIEW',65537from x$kqfvi unionallselect inst_id,k
qfdtnam, kqfdtobj,'TABLE',65537from x$kqfdt
总结一下:oracle的gv$视图和v$视图时在数据库创建过程中建立起来的,内置于数据库中,oracle通过v$fixed_view_definition视图为用户展示这些定义;
X$表的信息可以从v$fixed_table中查到:
scott@felixSQL>selectcount(*)from v$fixed_table wherenamelike'X$%';
COUNT(*)
----------
970
动态性能视图与数据库启动:
(1) NOMOUNT
在nomount阶段可以获取信息的视图主要有:V$PARAMETER、V$APPARAMETER、 V$SGA、 V$SGASTAT、 V$BH、 V$INSTANCE、 V$OPTION、 V$PROCESS、 V$SESSION;
(2) mount阶段
可以获取信息的主要视图:V$DATABASE、 V$DATAFILE、 V$VERSION、V$PROCESS、 V$DATAFILE_HEADER。
(3) OPEN阶段
在数据库OPEN之后,所有数据字典和动态性能视图都可以被查询;
V$PARAMETER结构:
03:46:58 scott@felixSQL>select VIEW_DEFINITIONfrom v$fixed_view_definition

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leistungsvergleich verschiedener Java-Frameworks: REST-API-Anforderungsverarbeitung: Vert.x ist am besten, mit einer Anforderungsrate von 2-mal SpringBoot und 3-mal Dropwizard. Datenbankabfrage: HibernateORM von SpringBoot ist besser als ORM von Vert.x und Dropwizard. Caching-Vorgänge: Der Hazelcast-Client von Vert.x ist den Caching-Mechanismen von SpringBoot und Dropwizard überlegen. Geeignetes Framework: Wählen Sie entsprechend den Anwendungsanforderungen. Vert.x eignet sich für leistungsstarke Webdienste, SpringBoot eignet sich für datenintensive Anwendungen und Dropwizard eignet sich für Microservice-Architekturen.

Letzte Woche wurde OpenAI inmitten der Welle interner Kündigungen und externer Kritik von internen und externen Problemen geplagt: - Der Verstoß gegen die Schwester der Witwe löste weltweit hitzige Diskussionen aus - Mitarbeiter, die „Overlord-Klauseln“ unterzeichneten, wurden einer nach dem anderen entlarvt – Internetnutzer listeten Ultramans „ Sieben Todsünden“ – Gerüchtebekämpfung: Laut durchgesickerten Informationen und Dokumenten, die Vox erhalten hat, war sich die leitende Führung von OpenAI, darunter Altman, dieser Eigenkapitalrückgewinnungsbestimmungen wohl bewusst und hat ihnen zugestimmt. Darüber hinaus steht OpenAI vor einem ernsten und dringenden Problem – der KI-Sicherheit. Die jüngsten Abgänge von fünf sicherheitsrelevanten Mitarbeitern, darunter zwei der prominentesten Mitarbeiter, und die Auflösung des „Super Alignment“-Teams haben die Sicherheitsprobleme von OpenAI erneut ins Rampenlicht gerückt. Das Fortune-Magazin berichtete, dass OpenA

Zu den wirksamen Techniken zur Optimierung der C++-Multithread-Leistung gehört die Begrenzung der Anzahl der Threads, um Ressourcenkonflikte zu vermeiden. Verwenden Sie leichte Mutex-Sperren, um Konflikte zu reduzieren. Optimieren Sie den Umfang der Sperre und minimieren Sie die Wartezeit. Verwenden Sie sperrenfreie Datenstrukturen, um die Parallelität zu verbessern. Vermeiden Sie geschäftiges Warten und benachrichtigen Sie Threads über Ereignisse über die Ressourcenverfügbarkeit.

Beim Modell 70B können 1000 Token in Sekunden generiert werden, was fast 4000 Zeichen entspricht! Die Forscher haben Llama3 verfeinert und einen Beschleunigungsalgorithmus eingeführt. Im Vergleich zur nativen Version ist die Geschwindigkeit 13-mal höher! Es ist nicht nur schnell, seine Leistung bei Code-Rewriting-Aufgaben übertrifft sogar GPT-4o. Diese Errungenschaft stammt von anysphere, dem Team hinter dem beliebten KI-Programmierartefakt Cursor, und auch OpenAI beteiligte sich an der Investition. Sie müssen wissen, dass bei Groq, einem bekannten Framework zur schnellen Inferenzbeschleunigung, die Inferenzgeschwindigkeit von 70BLlama3 nur mehr als 300 Token pro Sekunde beträgt. Aufgrund der Geschwindigkeit von Cursor kann man sagen, dass eine nahezu sofortige vollständige Bearbeitung der Codedatei möglich ist. Manche Leute nennen es einen guten Kerl, wenn man Curs sagt

Laut Nachrichten vom 26. Juni hielt Yang Jie, Vorsitzender von China Mobile, bei der Eröffnungszeremonie der World Mobile Communications Conference Shanghai (MWC Shanghai) 2024 eine Rede. Er sagte, dass die menschliche Gesellschaft derzeit in die vierte industrielle Revolution eintritt, die von Informationen dominiert und tief in Informationen und Energie integriert ist, d. h. die „Revolution der digitalen Intelligenz“, und dass sich die Bildung neuer Produktivkräfte beschleunigt. Yang Jie glaubt, dass jede Runde der industriellen Revolution darauf basiert, von der „Mechanisierungsrevolution“, angetrieben durch Dampfmaschinen, über die „Elektrifizierungsrevolution“, angetrieben durch Elektrizität und Verbrennungsmotoren, bis hin zur „Informationsrevolution“, angetrieben durch Computer und das Internet „Information und „Energie“ ist die Hauptlinie, die Produktivitätsentwicklung bringt

Bei der Entwicklung leistungsstarker Anwendungen übertrifft C++ andere Sprachen, insbesondere bei Mikro-Benchmarks. Bei Makro-Benchmarks können die Komfort- und Optimierungsmechanismen anderer Sprachen wie Java und C# besser abschneiden. In der Praxis schneidet C++ bei der Bildverarbeitung, bei numerischen Berechnungen und bei der Spieleentwicklung gut ab, und die direkte Steuerung der Speicherverwaltung und des Hardwarezugriffs bringt offensichtliche Leistungsvorteile.

Der beste Weg, Zufallszahlen in Go zu generieren, hängt von der Sicherheitsstufe ab, die Ihre Anwendung erfordert. Geringe Sicherheit: Verwenden Sie das Paket math/rand, um Pseudozufallszahlen zu generieren, die für die meisten Anwendungen geeignet sind. Hohe Sicherheit: Verwenden Sie das Paket crypto/rand, um kryptografisch sichere Zufallsbytes zu generieren, geeignet für Anwendungen, die eine stärkere Zufälligkeit erfordern.

Laut Benchmarks sind Quarkus (schneller Start, geringer Speicher) oder Micronaut (TechEmpower ausgezeichnet) für kleine, leistungsstarke Anwendungen die ideale Wahl. SpringBoot eignet sich für große Full-Stack-Anwendungen, weist jedoch etwas langsamere Startzeiten und Speichernutzung auf.
