Arquivo de 17 março, 2011

C++: Medindo intervalo de tempo em milissegundos no Linux, exemplo rápido

1 segundo / 1000 = 1 milissegundo
1 segundo / 1000000 = 1 microssegundo

#include <iostream>
#include <sys/time.h>
using namespace std;

int main()
{
    struct timeval Inicio, Fim;
    double Segundos, Milissegundos, Microssegundos;

    /* Coleta a data de inicio do processo */
    gettimeofday(&Inicio, NULL);

    /*
     * Seu programa faz alguma coisa,
     * nesse caso ele só faz esperar 2 segundos
     */
    sleep(2);

    /* Coleta a data de fim do processo*/
    gettimeofday(&Fim, NULL);

    /* Calcula o espaço de tempo */
    Segundos = Fim.tv_sec - Inicio.tv_sec;
    Microssegundos = Fim.tv_usec - Inicio.tv_usec;

    /* Transforma segundos e microssegundos em milissegundos */
    Milissegundos = Segundos * 1000 + Microssegundos / 1000;

    cout << "O programa demorou " << Milissegundos << " milissegundos" << endl;
}

A saída será mais ou menos esta:

O programa demorou 2000.07 milissegundos

Para compilar use:

$ g++ -i nome_do_executável nome_do_arquivo_fonte.cpp

Dúvidas? Deixe um comentário.

Foi usado como referência:
http://pt.wikipedia.org/wiki/Segundo
http://stackoverflow.com/questions/588307/c-obtaining-milliseconds-time-on-linux-clock-doesnt-seem-to-work-properly/588377#588377

,

Deixe um comentário

C++: Convertendo inteiro (int) em string, exemplo rápido

#include <iostream>
#include <sstream>
using namespace std;

int main()
{
	string NomeDoFilme = "Rambo";
	int Versao = 4;

	/* Converte inteiro em string */
	std::stringstream Resultado;
	Resultado << Versao;

	/* Une as duas strings, formando uma só */
	NomeDoFilme = NomeDoFilme + " " + Resultado.str();

	/* Exibi o resultado */
	cout << NomeDoFilme << endl;
}

A saída será:

Rambo 4

Para compilar use:

$ g++ -i nome_do_executável nome_do_arquivo_fonte.cpp

Dúvidas? Deixe um comentário.

,

Deixe um comentário

Linux: Limpando cache da memória RAM

Vou usar como exemplo um servidor que eu tenho. Ele já está ligado a 52 dias e algumas horas, como mostrado abaixo, veja que ele está usando 272MB de memória RAM.

$ uptime
09:40:22 up 52 days, 16:46,  3 users,  load average: 0.10, 0.04, 0.01
$ free -m
             total       used       free     shared    buffers     cached
Mem:           293        272         20          0         93        114
-/+ buffers/cache:         65        228
Swap:          572         20        551

Agora vamos limpar o cache:

$ sudo su
# echo 3 > /proc/sys/vm/drop_caches
# exit

Resumindo os comandos acima, eu entrei como root, limpei a cache e saí (só isso). Agora vamos ver o resultado:

$ free -m
             total       used       free     shared    buffers     cached
Mem:           293         64        228          0          0         10
-/+ buffers/cache:         53        239
Swap:          572         20        551

Depois da limpeza, o consumo de memória ficou 4 vezes menor, ou seja, 208MB a menos.

Dúvidas? Deixe um comentário.

Foi usando com referência:
http://www.vivaolinux.com.br/dica/Limpando-sua-memoria-cache-de-forma-simples/

Deixe um comentário

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.