1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
suter [353]
4 years ago
13

Implement a program to measure the impact of application-level buffer sizes on read time. This involves writing to and reading f

rom a large file (say, 2 GB). Vary the application buffer size (say, from 64 bytes to 4 KB). Use timing measurement routines (such as gettimeofday and getitimer on UNIX) to measure the time taken for different buffer sizes. Analyze the results and report your findings: does buffer size make a difference to the overall write time and per-write time?

Computers and Technology
1 answer:
Luda [366]4 years ago
6 0

Answer:

Input file: input.txt

Output file: output.txt

input.txt is a text file of 500 MB.

CODE:

#include <stdio.h>

#include <time.h>

#include <stdlib.h>

#include <fcntl.h>

#include <sys/time.h>

#include <string.h>

#include <unistd.h>

#include <sys/types.h>

double count = 0; // to keep the count of writes

// function which reads from input.txt and writes to output.txt

void fun(int* file_in, int* file_out, int BUFF_SIZE)

{

char *buff = (char *)malloc(BUFF_SIZE*sizeof(char));

while(read(*file_in, buff, BUFF_SIZE) != 0)

{

write(*file_out, buff, strlen(buff));

count++;

}

}

int main(int argc, char* argv[])

{

if(argc == 1)

{

printf("Usage: ./program.c [ buff_size(in bytes) ]\n");

return 0;

}

int file_in,file_out; // input and output file pointers

file_in = open("input.txt",O_RDONLY);

if(file_in == -1)

{

printf("Error while open input.txt \n");

return 0;

}

file_out = open("output.txt",O_WRONLY);

if(file_out == -1)

{

printf("Error occured while opening output.txt\n");

return 0;

}

struct timeval t1, t2; // for capture time

double elapsedTime;

// start timer

gettimeofday(&t1, NULL);

// do something

// ...

fun(&file_in, &file_out, atoi(argv[1]));

// stop timer

gettimeofday(&t2, NULL);

// compute and print the elapsed time in millisec

elapsedTime = (t2.tv_sec - t1.tv_sec)*1000.0; // sec to ms

printf("Overall write time: %lf ms\n",elapsedTime);

printf("Per write time: %lf ms\n", elapsedTime/count);

return 0;

Explanation:

Please see attachment for output

You might be interested in
PYTHON CODING LANGUAGE (i am a beginner)
MaRussiya [10]
#let the user input data
Hours = int(input(“enter how many hours were worked”))

Pay_rate = float(input(“Enter the pay rate”))

Pay_amount = Pay_rate * Hours
#calculate the wages


Print (Pay_amount)
#print the final answer
5 0
3 years ago
The first window displayed when you install opensuse is the ____ window.
Jlenok [28]
Is the <span>Boot Options window.</span>
3 0
3 years ago
Create a flowchart that assigns a counselor to a student.
Nataly [62]
Please Help! Unit 6: Lesson 1 - Coding Activity 2
Instructions: Hemachandra numbers (more commonly known as Fibonacci numbers) are found by starting with two numbers then finding the next number by adding the previous two numbers together. The most common starting numbers are 0 and 1 giving the numbers 0, 1, 1, 2, 3, 5...
The main method from this class contains code which is intended to fill an array of length 10 with these Hemachandra numbers, then print the value of the number in the array at the index entered by the user. For example if the user inputs 3 then the program should output 2, while if the user inputs 6 then the program should output 8. Debug this code so it works as intended.

The Code Given:

import java.util.Scanner;

public class U6_L1_Activity_Two{
public static void main(String[] args){
int[h] = new int[10];
0 = h[0];
1 = h[1];
h[2] = h[0] + h[1];
h[3] = h[1] + h[2];
h[4] = h[2] + h[3];
h[5] = h[3] + h[4];
h[6] = h[4] + h[5];
h[7] = h[5] + h[6];
h[8] = h[6] + h[7]
h[9] = h[7] + h[8];
h[10] = h[8] + h[9];
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
if (i >= 0 && i < 10)
System.out.println(h(i));
}
}
4 0
3 years ago
Read 2 more answers
In your email software the address book allows you to​
olga55 [171]

To put it simple, an Address Book is basically where you can store peoples names, addresses and most importantly emails so you can easily contact them. Its pretty much like your contacts on your phone.

7 0
3 years ago
In what way are high-level programming languages limited? (5 points)
Nat2105 [25]

Answer: High-level computer languages must be translated into assembly or machine languages by a compiler before they can be executed, making them slightly slower to execute than raw assembly or machine language. The answer is D.

4 0
3 years ago
Read 2 more answers
Other questions:
  • A _____, or spider, is a search engine program that automatically searches the web to find new websites and update information a
    14·1 answer
  • A function may return a pointer, but the programmer must ensure that the pointer:
    14·1 answer
  • One of the Employee responsibilities to LOTO is:
    5·1 answer
  • Why do nonprofit agencies include blogs on there website?
    10·1 answer
  • Which of the following is not a primary environment in Autodesk Inventor? A. Parts B. Assemblies C. Animations D. Presentations
    10·1 answer
  • A pointer can be used as a function argument, giving the function access to the original argument.
    8·1 answer
  • Oliver is working for a team that uses object-oriented concepts to design software. Which language would they use to develop thi
    10·1 answer
  • ______ controls are information security safeguards that focus on the application of modern technologies, systems, and processes
    12·1 answer
  • True or False: Reader Accounts are able to extract data from shared data objects for use outside of Snowflake.
    14·1 answer
  • In computing, what does LAN stand for?​
    13·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!