/*
* Copyright ( C ) 2018 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 .
*/
import java.math.BigInteger;
// This is motivated by the assumption that BigInteger allocates malloc memory
// underneath. That's true (in 2018) on Android.
public class Main {
public static void main(String[] args) throws Exception {
final int nIters = 20 _000 ; // Presumed < 1_000_000.
final BigInteger big2_20 = BigInteger.valueOf(1024 *1024 ); // 2^20
BigInteger huge = BigInteger.valueOf(1 ).shiftLeft(4 _000 _000 ); // ~0.5MB
for (int i = 0 ; i < nIters; ++i) { // 10 GB total
huge = huge.add(BigInteger.ONE);
}
if (huge.bitLength() != 4 _000 _001 ) {
System.out.println("Wrong answer length: " + huge.bitLength());
} else if (huge.mod(big2_20).compareTo(BigInteger.valueOf(nIters)) != 0 ) {
System.out.println("Wrong answer: ..." + huge.mod(big2_20));
} else {
System.out.println("Test complete" );
}
}
}
Messung V0.5 in Prozent C=55 H=82 G=69
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet am 2026-06-29)
¤
*© Formatika GbR, Deutschland