Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/art/art/test/738-jit-const-string/src-art/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 32 kB image not shown  

Quelle  Main.java

  Sprache: JAVA
 

/*
 * Copyright (C) 2025 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


public class Main {

    public static void main(String[] args) throws Exception {
        System.loadLibrary(args[0]);
        if (hasJit()) {
            testStringGC();
        }
        System.out.println("Done");
    }

    public static void testStringGC() throws Exception {
        // Make sure we resolve the test string.
        int h1 = useSomeString();
        // JIT-compile the test method.
        ensureJitCompiled(Main.class"useSomeString");
        // Evict the test string from the dex cache.
        clobberStringDexCache();

        // Request GC twice and give it some time to complete.
        Runtime.getRuntime().gc();
        Thread.sleep(5000);
        Runtime.getRuntime().gc();
        Thread.sleep(5000);

        // Try to use the test string again
        int h2 = useSomeString();
        if (h1 != h2) {
            throw new Error();
        }
    }

    public static int useSomeString() {
        String s = "Some unique String for test 738.";
        return calculateHash(s);
    }

    public static int calculateHash(String s) {
        int hash = 0;
        for (int i = 0, length = s.length(); i != length; ++i) {
            hash = hash * 31 + s.charAt(i);
        }
        return hash;
    }

    public static Object[] clobberStringDexCache() {
        // `DexCache` has up to 1024 entries.
        // Clobber them by using 1024 strings that get consecutive string indexes.
        return new Object[] {
                "string0000",
                "string0001",
                "string0002",
                "string0003",
                "string0004",
                "string0005",
                "string0006",
                "string0007",
                "string0008",
                "string0009",
                "string0010",
                "string0011",
                "string0012",
                "string0013",
                "string0014",
                "string0015",
                "string0016",
                "string0017",
                "string0018",
                "string0019",
                "string0020",
                "string0021",
                "string0022",
                "string0023",
                "string0024",
                "string0025",
                "string0026",
                "string0027",
                "string0028",
                "string0029",
                "string0030",
                "string0031",
                "string0032",
                "string0033",
                "string0034",
                "string0035",
                "string0036",
                "string0037",
                "string0038",
                "string0039",
                "string0040",
                "string0041",
                "string0042",
                "string0043",
                "string0044",
                "string0045",
                "string0046",
                "string0047",
                "string0048",
                "string0049",
                "string0050",
                "string0051",
                "string0052",
                "string0053",
                "string0054",
                "string0055",
                "string0056",
                "string0057",
                "string0058",
                "string0059",
                "string0060",
                "string0061",
                "string0062",
                "string0063",
                "string0064",
                "string0065",
                "string0066",
                "string0067",
                "string0068",
                "string0069",
                "string0070",
                "string0071",
                "string0072",
                "string0073",
                "string0074",
                "string0075",
                "string0076",
                "string0077",
                "string0078",
                "string0079",
                "string0080",
                "string0081",
                "string0082",
                "string0083",
                "string0084",
                "string0085",
                "string0086",
                "string0087",
                "string0088",
                "string0089",
                "string0090",
                "string0091",
                "string0092",
                "string0093",
                "string0094",
                "string0095",
                "string0096",
                "string0097",
                "string0098",
                "string0099",
                "string0100",
                "string0101",
                "string0102",
                "string0103",
                "string0104",
                "string0105",
                "string0106",
                "string0107",
                "string0108",
                "string0109",
                "string0110",
                "string0111",
                "string0112",
                "string0113",
                "string0114",
                "string0115",
                "string0116",
                "string0117",
                "string0118",
                "string0119",
                "string0120",
                "string0121",
                "string0122",
                "string0123",
                "string0124",
                "string0125",
                "string0126",
                "string0127",
                "string0128",
                "string0129",
                "string0130",
                "string0131",
                "string0132",
                "string0133",
                "string0134",
                "string0135",
                "string0136",
                "string0137",
                "string0138",
                "string0139",
                "string0140",
                "string0141",
                "string0142",
                "string0143",
                "string0144",
                "string0145",
                "string0146",
                "string0147",
                "string0148",
                "string0149",
                "string0150",
                "string0151",
                "string0152",
                "string0153",
                "string0154",
                "string0155",
                "string0156",
                "string0157",
                "string0158",
                "string0159",
                "string0160",
                "string0161",
                "string0162",
                "string0163",
                "string0164",
                "string0165",
                "string0166",
                "string0167",
                "string0168",
                "string0169",
                "string0170",
                "string0171",
                "string0172",
                "string0173",
                "string0174",
                "string0175",
                "string0176",
                "string0177",
                "string0178",
                "string0179",
                "string0180",
                "string0181",
                "string0182",
                "string0183",
                "string0184",
                "string0185",
                "string0186",
                "string0187",
                "string0188",
                "string0189",
                "string0190",
                "string0191",
                "string0192",
                "string0193",
                "string0194",
                "string0195",
                "string0196",
                "string0197",
                "string0198",
                "string0199",
                "string0200",
                "string0201",
                "string0202",
                "string0203",
                "string0204",
                "string0205",
                "string0206",
                "string0207",
                "string0208",
                "string0209",
                "string0210",
                "string0211",
                "string0212",
                "string0213",
                "string0214",
                "string0215",
                "string0216",
                "string0217",
                "string0218",
                "string0219",
                "string0220",
                "string0221",
                "string0222",
                "string0223",
                "string0224",
                "string0225",
                "string0226",
                "string0227",
                "string0228",
                "string0229",
                "string0230",
                "string0231",
                "string0232",
                "string0233",
                "string0234",
                "string0235",
                "string0236",
                "string0237",
                "string0238",
                "string0239",
                "string0240",
                "string0241",
                "string0242",
                "string0243",
                "string0244",
                "string0245",
                "string0246",
                "string0247",
                "string0248",
                "string0249",
                "string0250",
                "string0251",
                "string0252",
                "string0253",
                "string0254",
                "string0255",
                "string0256",
                "string0257",
                "string0258",
                "string0259",
                "string0260",
                "string0261",
                "string0262",
                "string0263",
                "string0264",
                "string0265",
                "string0266",
                "string0267",
                "string0268",
                "string0269",
                "string0270",
                "string0271",
                "string0272",
                "string0273",
                "string0274",
                "string0275",
                "string0276",
                "string0277",
                "string0278",
                "string0279",
                "string0280",
                "string0281",
                "string0282",
                "string0283",
                "string0284",
                "string0285",
                "string0286",
                "string0287",
                "string0288",
                "string0289",
                "string0290",
                "string0291",
                "string0292",
                "string0293",
                "string0294",
                "string0295",
                "string0296",
                "string0297",
                "string0298",
                "string0299",
                "string0300",
                "string0301",
                "string0302",
                "string0303",
                "string0304",
                "string0305",
                "string0306",
                "string0307",
                "string0308",
                "string0309",
                "string0310",
                "string0311",
                "string0312",
                "string0313",
                "string0314",
                "string0315",
                "string0316",
                "string0317",
                "string0318",
                "string0319",
                "string0320",
                "string0321",
                "string0322",
                "string0323",
                "string0324",
                "string0325",
                "string0326",
                "string0327",
                "string0328",
                "string0329",
                "string0330",
                "string0331",
                "string0332",
                "string0333",
                "string0334",
                "string0335",
                "string0336",
                "string0337",
                "string0338",
                "string0339",
                "string0340",
                "string0341",
                "string0342",
                "string0343",
                "string0344",
                "string0345",
                "string0346",
                "string0347",
                "string0348",
                "string0349",
                "string0350",
                "string0351",
                "string0352",
                "string0353",
                "string0354",
                "string0355",
                "string0356",
                "string0357",
                "string0358",
                "string0359",
                "string0360",
                "string0361",
                "string0362",
                "string0363",
                "string0364",
                "string0365",
                "string0366",
                "string0367",
                "string0368",
                "string0369",
                "string0370",
                "string0371",
                "string0372",
                "string0373",
                "string0374",
                "string0375",
                "string0376",
                "string0377",
                "string0378",
                "string0379",
                "string0380",
                "string0381",
                "string0382",
                "string0383",
                "string0384",
                "string0385",
                "string0386",
                "string0387",
                "string0388",
                "string0389",
                "string0390",
                "string0391",
                "string0392",
                "string0393",
                "string0394",
                "string0395",
                "string0396",
                "string0397",
                "string0398",
                "string0399",
                "string0400",
                "string0401",
                "string0402",
                "string0403",
                "string0404",
                "string0405",
                "string0406",
                "string0407",
                "string0408",
                "string0409",
                "string0410",
                "string0411",
                "string0412",
                "string0413",
                "string0414",
                "string0415",
                "string0416",
                "string0417",
                "string0418",
                "string0419",
                "string0420",
                "string0421",
                "string0422",
                "string0423",
                "string0424",
                "string0425",
                "string0426",
                "string0427",
                "string0428",
                "string0429",
                "string0430",
                "string0431",
                "string0432",
                "string0433",
                "string0434",
                "string0435",
                "string0436",
                "string0437",
                "string0438",
                "string0439",
                "string0440",
                "string0441",
                "string0442",
                "string0443",
                "string0444",
                "string0445",
                "string0446",
                "string0447",
                "string0448",
                "string0449",
                "string0450",
                "string0451",
                "string0452",
                "string0453",
                "string0454",
                "string0455",
                "string0456",
                "string0457",
                "string0458",
                "string0459",
                "string0460",
                "string0461",
                "string0462",
                "string0463",
                "string0464",
                "string0465",
                "string0466",
                "string0467",
                "string0468",
                "string0469",
                "string0470",
                "string0471",
                "string0472",
                "string0473",
                "string0474",
                "string0475",
                "string0476",
                "string0477",
                "string0478",
                "string0479",
                "string0480",
                "string0481",
                "string0482",
                "string0483",
                "string0484",
                "string0485",
                "string0486",
                "string0487",
                "string0488",
                "string0489",
                "string0490",
                "string0491",
                "string0492",
                "string0493",
                "string0494",
                "string0495",
                "string0496",
                "string0497",
                "string0498",
                "string0499",
                "string0500",
                "string0501",
                "string0502",
                "string0503",
                "string0504",
                "string0505",
                "string0506",
                "string0507",
                "string0508",
                "string0509",
                "string0510",
                "string0511",
                "string0512",
                "string0513",
                "string0514",
                "string0515",
                "string0516",
                "string0517",
                "string0518",
                "string0519",
                "string0520",
                "string0521",
                "string0522",
                "string0523",
                "string0524",
                "string0525",
                "string0526",
                "string0527",
                "string0528",
                "string0529",
                "string0530",
                "string0531",
                "string0532",
                "string0533",
                "string0534",
                "string0535",
                "string0536",
                "string0537",
                "string0538",
                "string0539",
                "string0540",
                "string0541",
                "string0542",
                "string0543",
                "string0544",
                "string0545",
                "string0546",
                "string0547",
                "string0548",
                "string0549",
                "string0550",
                "string0551",
                "string0552",
                "string0553",
                "string0554",
                "string0555",
                "string0556",
                "string0557",
                "string0558",
                "string0559",
                "string0560",
                "string0561",
                "string0562",
                "string0563",
                "string0564",
                "string0565",
                "string0566",
                "string0567",
                "string0568",
                "string0569",
                "string0570",
                "string0571",
                "string0572",
                "string0573",
                "string0574",
                "string0575",
                "string0576",
                "string0577",
                "string0578",
                "string0579",
                "string0580",
                "string0581",
                "string0582",
                "string0583",
                "string0584",
                "string0585",
                "string0586",
                "string0587",
                "string0588",
                "string0589",
                "string0590",
                "string0591",
                "string0592",
                "string0593",
                "string0594",
                "string0595",
                "string0596",
                "string0597",
                "string0598",
                "string0599",
                "string0600",
                "string0601",
                "string0602",
                "string0603",
                "string0604",
                "string0605",
                "string0606",
                "string0607",
                "string0608",
                "string0609",
                "string0610",
                "string0611",
                "string0612",
                "string0613",
                "string0614",
                "string0615",
                "string0616",
                "string0617",
                "string0618",
                "string0619",
                "string0620",
                "string0621",
                "string0622",
                "string0623",
                "string0624",
                "string0625",
                "string0626",
                "string0627",
                "string0628",
                "string0629",
                "string0630",
                "string0631",
                "string0632",
                "string0633",
                "string0634",
                "string0635",
                "string0636",
                "string0637",
                "string0638",
                "string0639",
                "string0640",
                "string0641",
                "string0642",
                "string0643",
                "string0644",
                "string0645",
                "string0646",
                "string0647",
                "string0648",
                "string0649",
                "string0650",
                "string0651",
                "string0652",
                "string0653",
                "string0654",
                "string0655",
                "string0656",
                "string0657",
                "string0658",
                "string0659",
                "string0660",
                "string0661",
                "string0662",
                "string0663",
                "string0664",
                "string0665",
                "string0666",
                "string0667",
                "string0668",
                "string0669",
                "string0670",
                "string0671",
                "string0672",
                "string0673",
                "string0674",
                "string0675",
                "string0676",
                "string0677",
                "string0678",
                "string0679",
                "string0680",
                "string0681",
                "string0682",
                "string0683",
                "string0684",
                "string0685",
                "string0686",
                "string0687",
                "string0688",
                "string0689",
                "string0690",
                "string0691",
                "string0692",
                "string0693",
                "string0694",
                "string0695",
                "string0696",
                "string0697",
                "string0698",
                "string0699",
                "string0700",
                "string0701",
                "string0702",
                "string0703",
                "string0704",
                "string0705",
                "string0706",
                "string0707",
                "string0708",
                "string0709",
                "string0710",
                "string0711",
                "string0712",
                "string0713",
                "string0714",
                "string0715",
                "string0716",
                "string0717",
                "string0718",
                "string0719",
                "string0720",
                "string0721",
                "string0722",
                "string0723",
                "string0724",
                "string0725",
                "string0726",
                "string0727",
                "string0728",
                "string0729",
                "string0730",
                "string0731",
                "string0732",
                "string0733",
                "string0734",
                "string0735",
                "string0736",
                "string0737",
                "string0738",
                "string0739",
                "string0740",
                "string0741",
                "string0742",
                "string0743",
                "string0744",
                "string0745",
                "string0746",
                "string0747",
                "string0748",
                "string0749",
                "string0750",
                "string0751",
                "string0752",
                "string0753",
                "string0754",
                "string0755",
                "string0756",
                "string0757",
                "string0758",
                "string0759",
                "string0760",
                "string0761",
                "string0762",
                "string0763",
                "string0764",
                "string0765",
                "string0766",
                "string0767",
                "string0768",
                "string0769",
                "string0770",
                "string0771",
                "string0772",
                "string0773",
                "string0774",
                "string0775",
                "string0776",
                "string0777",
                "string0778",
                "string0779",
                "string0780",
                "string0781",
                "string0782",
                "string0783",
                "string0784",
                "string0785",
                "string0786",
                "string0787",
                "string0788",
                "string0789",
                "string0790",
                "string0791",
                "string0792",
                "string0793",
                "string0794",
                "string0795",
                "string0796",
                "string0797",
                "string0798",
                "string0799",
                "string0800",
                "string0801",
                "string0802",
                "string0803",
                "string0804",
                "string0805",
                "string0806",
                "string0807",
                "string0808",
                "string0809",
                "string0810",
                "string0811",
                "string0812",
                "string0813",
                "string0814",
                "string0815",
                "string0816",
                "string0817",
                "string0818",
                "string0819",
                "string0820",
                "string0821",
                "string0822",
                "string0823",
                "string0824",
                "string0825",
                "string0826",
                "string0827",
                "string0828",
                "string0829",
                "string0830",
                "string0831",
                "string0832",
                "string0833",
                "string0834",
                "string0835",
                "string0836",
                "string0837",
                "string0838",
                "string0839",
                "string0840",
                "string0841",
                "string0842",
                "string0843",
                "string0844",
                "string0845",
                "string0846",
                "string0847",
                "string0848",
                "string0849",
                "string0850",
                "string0851",
                "string0852",
                "string0853",
                "string0854",
                "string0855",
                "string0856",
                "string0857",
                "string0858",
                "string0859",
                "string0860",
                "string0861",
                "string0862",
                "string0863",
                "string0864",
                "string0865",
                "string0866",
                "string0867",
                "string0868",
                "string0869",
                "string0870",
                "string0871",
                "string0872",
                "string0873",
                "string0874",
                "string0875",
                "string0876",
                "string0877",
                "string0878",
                "string0879",
                "string0880",
                "string0881",
                "string0882",
                "string0883",
                "string0884",
                "string0885",
                "string0886",
                "string0887",
                "string0888",
                "string0889",
                "string0890",
                "string0891",
                "string0892",
                "string0893",
                "string0894",
                "string0895",
                "string0896",
                "string0897",
                "string0898",
                "string0899",
                "string0900",
                "string0901",
                "string0902",
                "string0903",
                "string0904",
                "string0905",
                "string0906",
                "string0907",
                "string0908",
                "string0909",
                "string0910",
                "string0911",
                "string0912",
                "string0913",
                "string0914",
                "string0915",
                "string0916",
                "string0917",
                "string0918",
                "string0919",
                "string0920",
                "string0921",
                "string0922",
                "string0923",
                "string0924",
                "string0925",
                "string0926",
                "string0927",
                "string0928",
                "string0929",
                "string0930",
                "string0931",
                "string0932",
                "string0933",
                "string0934",
                "string0935",
                "string0936",
                "string0937",
                "string0938",
                "string0939",
                "string0940",
                "string0941",
                "string0942",
                "string0943",
                "string0944",
                "string0945",
                "string0946",
                "string0947",
                "string0948",
                "string0949",
                "string0950",
                "string0951",
                "string0952",
                "string0953",
                "string0954",
                "string0955",
                "string0956",
                "string0957",
                "string0958",
                "string0959",
                "string0960",
                "string0961",
                "string0962",
                "string0963",
                "string0964",
                "string0965",
                "string0966",
                "string0967",
                "string0968",
                "string0969",
                "string0970",
                "string0971",
                "string0972",
                "string0973",
                "string0974",
                "string0975",
                "string0976",
                "string0977",
                "string0978",
                "string0979",
                "string0980",
                "string0981",
                "string0982",
                "string0983",
                "string0984",
                "string0985",
                "string0986",
                "string0987",
                "string0988",
                "string0989",
                "string0990",
                "string0991",
                "string0992",
                "string0993",
                "string0994",
                "string0995",
                "string0996",
                "string0997",
                "string0998",
                "string0999",
                "string1000",
                "string1001",
                "string1002",
                "string1003",
                "string1004",
                "string1005",
                "string1006",
                "string1007",
                "string1008",
                "string1009",
                "string1010",
                "string1011",
                "string1012",
                "string1013",
                "string1014",
                "string1015",
                "string1016",
                "string1017",
                "string1018",
                "string1019",
                "string1020",
                "string1021",
                "string1022",
                "string1023",
        };
    }

    static native boolean hasJit();
    static native void ensureJitCompiled(Class<?> klass, String methodName);
}

Messung V0.5 in Prozent
C=85 H=91 G=87

¤ Dauer der Verarbeitung: 0.19 Sekunden  (vorverarbeitet am  2026-06-29) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.