国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Datenskript erstellen" >Datenskript erstellen
Die drei Abfragezeiten sind:
  • 14060 ms
  • 13755 ms
  • 13447 ms

普通分頁(yè)查詢

MySQL 支持 LIMIT 語(yǔ)句來(lái)選取指定的條數(shù)數(shù)據(jù), Oracle 可以使用 ROWNUM 來(lái)選取。

MySQL分頁(yè)查詢語(yǔ)法如下:

%%PRE_BLOCK_3%%
  • 第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量
  • 第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目

下面我們開(kāi)始測(cè)試查詢結(jié)果:

%%PRE_BLOCK_4%%

查詢3次時(shí)間分別為:

  • 59 ms
  • 49 ms
  • 50 ms

這樣看起來(lái)速度還行,不過(guò)是本地?cái)?shù)據(jù)庫(kù),速度自然快點(diǎn)。

換個(gè)角度來(lái)測(cè)試

相同偏移量,不同數(shù)據(jù)量

%%PRE_BLOCK_5%%

查詢時(shí)間如下:

1000 Elemente 100000 Artikel1609ms1741ms1764ms 1000000 Artikel16219ms16889ms17081ms

從上面結(jié)果可以得出結(jié)束:數(shù)據(jù)量越大,花費(fèi)時(shí)間越長(zhǎng)

相同數(shù)據(jù)量,不同偏移量

%%PRE_BLOCK_6%%
MengeErstes MalZweites MalDrittes Mal
10. Artikel53ms52ms47ms
100 Artikel50ms60ms 55ms
偏移量第一次第二次第三次
10036ms40ms36ms
100031ms38ms32ms
1000053ms48ms51ms
100000622ms576ms627ms
10000004891ms5076ms4856ms

從上面結(jié)果可以得出結(jié)束:偏移量越大,花費(fèi)時(shí)間越長(zhǎng)

%%PRE_BLOCK_7%%

如何優(yōu)化 " >Ergebnis zurückgeben: 3148000 Die drei Abfragezeiten sind:
  • 14060 ms
  • 13755 ms
  • 13447 ms

普通分頁(yè)查詢

MySQL 支持 LIMIT 語(yǔ)句來(lái)選取指定的條數(shù)數(shù)據(jù), Oracle 可以使用 ROWNUM 來(lái)選取。

MySQL分頁(yè)查詢語(yǔ)法如下:

%%PRE_BLOCK_3%%
  • 第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量
  • 第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目

下面我們開(kāi)始測(cè)試查詢結(jié)果:

%%PRE_BLOCK_4%%

查詢3次時(shí)間分別為:

  • 59 ms
  • 49 ms
  • 50 ms

這樣看起來(lái)速度還行,不過(guò)是本地?cái)?shù)據(jù)庫(kù),速度自然快點(diǎn)。

換個(gè)角度來(lái)測(cè)試

相同偏移量,不同數(shù)據(jù)量

%%PRE_BLOCK_5%%

查詢時(shí)間如下:

1000 Elemente 100000 Artikel1609ms1741ms1764ms 1000000 Artikel16219ms16889ms17081ms

從上面結(jié)果可以得出結(jié)束:數(shù)據(jù)量越大,花費(fèi)時(shí)間越長(zhǎng)

相同數(shù)據(jù)量,不同偏移量

%%PRE_BLOCK_6%%
MengeErstes MalZweites MalDrittes Mal
10. Artikel53ms52ms47ms
100 Artikel50ms60ms 55ms
偏移量第一次第二次第三次
10036ms40ms36ms
100031ms38ms32ms
1000053ms48ms51ms
100000622ms576ms627ms
10000004891ms5076ms4856ms

從上面結(jié)果可以得出結(jié)束:偏移量越大,花費(fèi)時(shí)間越長(zhǎng)

%%PRE_BLOCK_7%%

如何優(yōu)化

優(yōu)化偏移量大問(wèn)題" >優(yōu)化偏移量大問(wèn)題
采用子查詢方式" >采用子查詢方式
采用 id 限定方式" >采用 id 限定方式
優(yōu)化數(shù)據(jù)量大問(wèn)題" >優(yōu)化數(shù)據(jù)量大問(wèn)題
Heim Java JavaInterview Fragen Interviewer: Wie haben Sie 10 Millionen Daten abgefragt?

Interviewer: Wie haben Sie 10 Millionen Daten abgefragt?

Aug 15, 2023 pm 04:34 PM
java Java -Interview

Kürzlich habe ich Probeinterviews und Lebenslaufoptimierungen für alle durchgeführt und dabei festgestellt, dass viele Menschen weiche Knie bekommen, wenn sie Fragen wie zig Millionen Daten sehen.

Vielleicht sind einige Leute noch nie auf eine Tabelle mit zig Millionen Daten gesto?en und wissen nicht, was passiert, wenn sie zig Millionen Daten abfragen.

Heute werde ich Sie durch eine praktische übung führen. Dieses Mal basiert sie auf MySQL 5.7.26 zum Testen

Daten vorbereiten

Was tun, wenn Sie nicht über 10 Millionen Daten verfügen? ?

Sie k?nnen es ohne Daten nicht selbst erstellen?

Ist es schwierig, Daten zu erstellen?

10 Millionen Code-Erstellung?

Das ist unm?glich, es ist zu langsam, man k?nnte wirklich einen ganzen Tag zum Laufen brauchen. Sie k?nnen Datenbankskripte verwenden, um sie viel schneller auszuführen.

Tabelle erstellen
CREATE TABLE `user_operation_log`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `ip` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `op_data` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr4` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr6` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr7` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr8` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr9` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr10` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr11` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `attr12` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
Datenskript erstellen

Mit der Stapeleinfügung wird die Effizienz viel schneller sein und alle 1000 Elemente werden festgeschrieben Das Einfügen von Stapeln wird ebenfalls langsam sein.

DELIMITER ;;
CREATE PROCEDURE batch_insert_log()
BEGIN
  DECLARE i INT DEFAULT 1;
  DECLARE userId INT DEFAULT 10000000;
 set @execSql = 'INSERT INTO `test`.`user_operation_log`(`user_id`, `ip`, `op_data`, `attr1`, `attr2`, `attr3`, `attr4`, `attr5`, `attr6`, `attr7`, `attr8`, `attr9`, `attr10`, `attr11`, `attr12`) VALUES';
 set @execData = '';
  WHILE i<=10000000 DO
   set @attr = "&#39;測(cè)試很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)的屬性&#39;";
  set @execData = concat(@execData, "(", userId + i, ", &#39;10.0.69.175&#39;, &#39;用戶登錄操作&#39;", ",", @attr, ",", @attr, ",", @attr, ",", @attr, ",", @attr, ",", @attr, ",", @attr, ",", @attr, ",", @attr, ",", @attr, ",", @attr, ",", @attr, ")");
  if i % 1000 = 0
  then
     set @stmtSql = concat(@execSql, @execData,";");
    prepare stmt from @stmtSql;
    execute stmt;
    DEALLOCATE prepare stmt;
    commit;
    set @execData = "";
   else
     set @execData = concat(@execData, ",");
   end if;
  SET i=i+1;
  END WHILE;

END;;
DELIMITER ;
. Starten Sie den Test Für diesen Test wurden 3148000 Datenstücke vorbereitet, die 5G belegten (noch ohne Indizierung), und er lief 38 Minuten lang. Schüler mit guter Computerkonfiguration k?nnen mehrere Datenpunkte zum Testen einfügen

SELECT count(1) FROM `user_operation_log`

Ergebnis zurückgeben: 3148000 Die drei Abfragezeiten sind:
  • 14060 ms
  • 13755 ms
  • 13447 ms

普通分頁(yè)查詢

MySQL 支持 LIMIT 語(yǔ)句來(lái)選取指定的條數(shù)數(shù)據(jù), Oracle 可以使用 ROWNUM 來(lái)選取。

MySQL分頁(yè)查詢語(yǔ)法如下:

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
  • 第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量
  • 第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目

下面我們開(kāi)始測(cè)試查詢結(jié)果:

SELECT * FROM `user_operation_log` LIMIT 10000, 10

查詢3次時(shí)間分別為:

  • 59 ms
  • 49 ms
  • 50 ms

這樣看起來(lái)速度還行,不過(guò)是本地?cái)?shù)據(jù)庫(kù),速度自然快點(diǎn)。

換個(gè)角度來(lái)測(cè)試

相同偏移量,不同數(shù)據(jù)量

SELECT * FROM `user_operation_log` LIMIT 10000, 10
SELECT * FROM `user_operation_log` LIMIT 10000, 100
SELECT * FROM `user_operation_log` LIMIT 10000, 1000
SELECT * FROM `user_operation_log` LIMIT 10000, 10000
SELECT * FROM `user_operation_log` LIMIT 10000, 100000
SELECT * FROM `user_operation_log` LIMIT 10000, 1000000

查詢時(shí)間如下:

1000 Elemente 100000 Artikel1609ms1741ms1764ms 1000000 Artikel16219ms16889ms17081ms

從上面結(jié)果可以得出結(jié)束:數(shù)據(jù)量越大,花費(fèi)時(shí)間越長(zhǎng)

相同數(shù)據(jù)量,不同偏移量

SELECT * FROM `user_operation_log` LIMIT 100, 100
SELECT * FROM `user_operation_log` LIMIT 1000, 100
SELECT * FROM `user_operation_log` LIMIT 10000, 100
SELECT * FROM `user_operation_log` LIMIT 100000, 100
SELECT * FROM `user_operation_log` LIMIT 1000000, 100
MengeErstes MalZweites MalDrittes Mal
10. Artikel53ms52ms47ms
100 Artikel50ms60ms 55ms
偏移量第一次第二次第三次
10036ms40ms36ms
100031ms38ms32ms
1000053ms48ms51ms
100000622ms576ms627ms
10000004891ms5076ms4856ms

從上面結(jié)果可以得出結(jié)束:偏移量越大,花費(fèi)時(shí)間越長(zhǎng)

SELECT * FROM `user_operation_log` LIMIT 100, 100
SELECT id, attr FROM `user_operation_log` LIMIT 100, 100

如何優(yōu)化

既然我們經(jīng)過(guò)上面一番的折騰,也得出了結(jié)論,針對(duì)上面兩個(gè)問(wèn)題:偏移大、數(shù)據(jù)量大,我們分別著手優(yōu)化

優(yōu)化偏移量大問(wèn)題

采用子查詢方式

我們可以先定位偏移位置的 id,然后再查詢數(shù)據(jù)

SELECT * FROM `user_operation_log` LIMIT 1000000, 10

SELECT id FROM `user_operation_log` LIMIT 1000000, 1

SELECT * FROM `user_operation_log` WHERE id >= (SELECT id FROM `user_operation_log` LIMIT 1000000, 1) LIMIT 10

查詢結(jié)果如下:

sql花費(fèi)時(shí)間
第一條4818ms
第二條(無(wú)索引情況下)4329ms
第二條(有索引情況下)199ms
第三條(無(wú)索引情況下)4319ms
第三條(有索引情況下)201ms

從上面結(jié)果得出結(jié)論:

  • 第一條花費(fèi)的時(shí)間最大,第三條比第一條稍微好點(diǎn)
  • 子查詢使用索引速度更快

缺點(diǎn):只適用于id遞增的情況

id非遞增的情況可以使用以下寫(xiě)法,但這種缺點(diǎn)是分頁(yè)查詢只能放在子查詢里面

注意:某些 mysql 版本不支持在 in 子句中使用 limit,所以采用了多個(gè)嵌套select

SELECT * FROM `user_operation_log` WHERE id IN (SELECT t.id FROM (SELECT id FROM `user_operation_log` LIMIT 1000000, 10) AS t)
采用 id 限定方式

這種方法要求更高些,id必須是連續(xù)遞增,而且還得計(jì)算id的范圍,然后使用 between,sql如下

SELECT * FROM `user_operation_log` WHERE id between 1000000 AND 1000100 LIMIT 100

SELECT * FROM `user_operation_log` WHERE id >= 1000000 LIMIT 100

查詢結(jié)果如下:

sql花費(fèi)時(shí)間
第一條22ms
第二條21ms

從結(jié)果可以看出這種方式非???/p>

注意:這里的 LIMIT 是限制了條數(shù),沒(méi)有采用偏移量

優(yōu)化數(shù)據(jù)量大問(wèn)題

返回結(jié)果的數(shù)據(jù)量也會(huì)直接影響速度

SELECT * FROM `user_operation_log` LIMIT 1, 1000000

SELECT id FROM `user_operation_log` LIMIT 1, 1000000

SELECT id, user_id, ip, op_data, attr1, attr2, attr3, attr4, attr5, attr6, attr7, attr8, attr9, attr10, attr11, attr12 FROM `user_operation_log` LIMIT 1, 1000000

查詢結(jié)果如下:

sql 花費(fèi)時(shí)間
第一條 15676ms
第二條 7298ms
第三條 15960ms

Aus den Ergebnissen geht hervor, dass durch die Reduzierung unn?tiger Spalten auch die Abfrageeffizienz erheblich verbessert werden kann.

Die Geschwindigkeit der ersten und dritten Abfrage ist fast gleich, also warum sollte ich mich beschweren? So viele Felder schreiben? , einfach * und schon sind Sie fertig

Beachten Sie, dass sich mein MySQL-Server und mein MySQL-Client auf demselben Computer befinden, sodass qualifizierte Studenten den Client und MySQL separat testen k?nnen

SELECT *. Riecht es nicht gut?

übrigens m?chte ich hier hinzufügen, warum wir SELECT *. Ist es nicht k?stlich, weil es einfach und sinnlos ist? SELECT *。難道簡(jiǎn)單無(wú)腦,它不香嗎?

主要兩點(diǎn):

  1. 用 "SELECT * " 數(shù)據(jù)庫(kù)需要解析更多的對(duì)象、字段、權(quán)限、屬性等相關(guān)內(nèi)容,在 SQL 語(yǔ)句復(fù)雜,硬解析較多的情況下,會(huì)對(duì)數(shù)據(jù)庫(kù)造成沉重的負(fù)擔(dān)。
  2. 增大網(wǎng)絡(luò)開(kāi)銷,*
    Zwei Hauptpunkte:
    1. Verwenden Sie "SELECT * " Die Datenbank muss mehr Objekte, Felder, Berechtigungen, Attribute usw. analysieren. Inhalt: Wenn die SQL-Anweisung komplex ist und viele harte Analysen durchgeführt werden, wird die Datenbank stark belastet.

  • Netzwerk-Overhead erh?hen, * Manchmal sind log, IconMD5 und dergleichen f?lschlicherweise enthalten. Nutzlos und gro? Bei Textfeldern nimmt die Datenübertragungsgr??e exponentiell zu. Insbesondere da sich MySQL und die Anwendung nicht auf demselben Rechner befinden, ist dieser Overhead sehr offensichtlich.

  • ????????

    Das obige ist der detaillierte Inhalt vonInterviewer: Wie haben Sie 10 Millionen Daten abgefragt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Erkl?rung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Hei?e KI -Werkzeuge

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

    Hei?e Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Hei?e Themen

    PHP-Tutorial
    1502
    276
    Wie gehe ich mit Transaktionen in Java mit JDBC um? Wie gehe ich mit Transaktionen in Java mit JDBC um? Aug 02, 2025 pm 12:29 PM

    Um JDBC -Transaktionen korrekt zu verarbeiten, müssen Sie zun?chst den automatischen Komiti -Modus ausschalten und dann mehrere Vorg?nge ausführen und schlie?lich entsprechend den Ergebnissen festlegen oder rollen. 1. Nennen Sie Conn.SetAutoCommit (False), um die Transaktion zu starten. 2. Führen Sie mehrere SQL -Operationen aus, z. B. einfügen und aktualisieren. 3. Rufen Sie Conn.Commit () an, wenn alle Vorg?nge erfolgreich sind, und rufen Sie Conn.Rollback () auf, wenn eine Ausnahme auftritt, um die Datenkonsistenz zu gew?hrleisten. Gleichzeitig sollten Try-with-Ressourcen verwendet werden, um Ressourcen zu verwalten, Ausnahmen ordnungsgem?? zu behandeln und Verbindungen zu schlie?en, um Verbindungsleckage zu vermeiden. Darüber hinaus wird empfohlen, Verbindungspools zu verwenden und Save -Punkte zu setzen, um teilweise Rollback zu erreichen und Transaktionen so kurz wie m?glich zu halten, um die Leistung zu verbessern.

    Verst?ndnis der Java Virtual Machine (JVM) Interna Verst?ndnis der Java Virtual Machine (JVM) Interna Aug 01, 2025 am 06:31 AM

    ThejvMenablesJavas "Writeonce, Runanywhere" -CapabilityByexecutingByteCodethroughfourMainComponents: 1.TheClassloadersubStemLoads, Links, undinitializes

    Wie arbeite man mit Kalender in Java? Wie arbeite man mit Kalender in Java? Aug 02, 2025 am 02:38 AM

    Verwenden Sie Klassen im Java.Time -Paket, um das alte Datum und die Kalenderklassen zu ersetzen. 2. Erhalten Sie das aktuelle Datum und die aktuelle Uhrzeit durch LocalDate, LocalDatetime und Local Time; 3. Erstellen Sie ein bestimmtes Datum und eine bestimmte Uhrzeit mit der von () Methode; 4.. Verwenden Sie die Plus/Minus -Methode, um die Zeit nicht zu erh?hen und zu verkürzen. 5. Verwenden Sie ZonedDatetime und zoneId, um die Zeitzone zu verarbeiten. 6. Format und analysieren Sie Datumszeichenfolgen über DateTimeFormatter; 7. Verwenden Sie sofortige, um bei Bedarf mit den alten Datumstypen kompatibel zu sein. Die Verarbeitung der Datum in der modernen Java sollte der Verwendung von Java.Timeapi vorrangig machen, was klare, unver?nderliche und linear ist

    Vergleich von Java Frameworks: Spring Boot vs Quarkus gegen Micronaut Vergleich von Java Frameworks: Spring Boot vs Quarkus gegen Micronaut Aug 04, 2025 pm 12:48 PM

    Pre-Formancetartuptimemoryusage, QuarkusandmicronautleadduToCompile-Time-foringandgraalvSupport, WithQuarkusofttenperformLightBetterin serverloser Szenarien.2. Thyvelopecosystem,

    Verst?ndnis von Netzwerkports und Firewalls Verst?ndnis von Netzwerkports und Firewalls Aug 01, 2025 am 06:40 AM

    Networkportsandfirewallsworktogethertoenablecommunicationwhileensuringsecurity.1.Networkportsarevirtualendpointsnumbered0–65535,withwell-knownportslike80(HTTP),443(HTTPS),22(SSH),and25(SMTP)identifyingspecificservices.2.PortsoperateoverTCP(reliable,c

    Wie funktioniert die Müllsammlung in Java? Wie funktioniert die Müllsammlung in Java? Aug 02, 2025 pm 01:55 PM

    Die Müllsammlung von Java (GC) ist ein Mechanismus, der automatisch den Speicher verwaltet, der das Risiko eines Speicherlecks verringert, indem unerreichbare Objekte zurückgeführt werden. 1.GC beurteilt die Zug?nglichkeit des Objekts aus dem Stammobjekt (z. B. Stapelvariablen, aktive Threads, statische Felder usw.) und nicht erreichbare Objekte als Müll markiert. 2. Basierend auf dem markierten Algorithmus markieren Sie alle erreichbaren Objekte und l?schen Sie nicht markierte Objekte. 3.. Verfolgen Sie eine Generationskollektionsstrategie: Die neue Generation (Eden, S0, S1) führt h?ufig MollGC aus; Die ?lteren Menschen erzielen weniger, dauert jedoch l?nger, um MajorGC durchzuführen. MetaPace speichert Klassenmetadaten. 4. JVM bietet eine Vielzahl von GC -Ger?ten: SerialGC ist für kleine Anwendungen geeignet; ParallelgC verbessert den Durchsatz; CMS reduziert sich

    Vergleich von Java -Build -Werkzeugen: Maven vs. Gradle Vergleich von Java -Build -Werkzeugen: Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

    GradleStheBetterChoiceFormostnewProjectsDuetoitSuperiorFlexibilit?t, Leistung und ModerntoolingSupport.1.GRADLE'SGROOVY/KOTLINDSLISMORECONCISEANDEIPRESSIVETHANMANMANBOSEXML.2.GRAGRECONCISEANDEPRPRESSIVETHANMAVENSVOSEXML.2.

    Gehen Sie mit einer Beispielverschiebung erkl?rt Gehen Sie mit einer Beispielverschiebung erkl?rt Aug 02, 2025 am 06:26 AM

    Auf Defer wird verwendet, um bestimmte Vorg?nge auszuführen, bevor die Funktion zurückgibt, z. B. die Reinigungsressourcen. Die Parameter werden sofort bewertet, wenn sie aufgeschoben werden, und die Funktionen werden in der Reihenfolge von Last-In-First-Out (LIFO) ausgeführt. 1. Mehrere Defers werden in umgekehrter Reihenfolge der Erkl?rungen ausgeführt. 2. h?ufig für die sichere Reinigung wie das Schlie?en von Dateien verwendet; 3. Der benannte Rückgabewert kann ge?ndert werden; V. 5. Vermeiden Sie den Missbrauch von Verschiebungen in Schleifen, um Ressourcenleckage zu verhindern. Die korrekte Verwendung kann die Sicherheit und die Lesbarkeit der Code verbessern.

    See all articles