<?php

/*
 * To run, type:
 * php -f google_th_4_profile.php
 *
 * Must be run at least 2 times for meaningful timing results (for caching the downloaded files).
 */

/*
 * Generate SQlite database with the first 50 million prime numbers.
 */

/*
 * Configuration options
 */

define('DATABASE_FILENAME''google_th_4b.serial');
define('DATABASE_MAXLINES'10000);
define('ZIPPED_PRIMES_URL''http://www.utm.edu/~caldwell/primes/millions/primes1.zip');

/*
 * Program implementation
 */

// Increase memory limit to allow serialization
//ini_set('memory_limit', '256M');

// Populate database
echo "Processing [primes1.zip]... ";

if(!
file_exists("primes1.txt")) {
    if(
system("curl -o primes1.zip -L ".str_replace('%d'"$i"ZIPPED_PRIMES_URL)) === false)
        die(
'Could not retrieve file!');
    if(
system("unzip primes1.zip") === false)
        die(
'Could not decompress file!');
}

$dbhandle fopen(DATABASE_FILENAME'w');
if(!
$dbhandle)
    die(
'Could not open database file!');

$handle fopen("primes1.txt"'r');
if(!
$handle)
    die(
'Could not open primes file!');

fgets($handle);
fgets($handle);
$count 0;

while(!
feof($handle)) {

    
$line_count 0;
    
$query '';

    while(!
feof($handle) && $line_count DATABASE_MAXLINES) {
        
$line fgets($handle);
        
$line_count++;
        foreach(
explode(' '$line) as $number) {
            if(
$number 1) {
                
fputs($dbhandle,  $number."\n");
            }
            if(
$n 10000000) {
                break 
3;
            }
        }
    }
}
fclose($handle);
fclose($dbhandle);

// Write database file
/*shell_exec('rm -f '.DATABASE_FILENAME.'*');
if(file_put_contents(DATABASE_FILENAME, serialize($db)) === false) {
    die('Unable to write database file!');
}*/

echo "completed OK.\n\n";

?>