'Stack'에 해당되는 글 2건

  1. 2021.02.25 Stack과 Heap
  2. 2011.06.16 [Python] Undo / Redo 구현하기
Coding/CPP 삽질기2021. 2. 25. 23:52

1. Stack과 Heap 영역에 변수 생성 시간 테스트

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAX_COUNT 1000000


void do_nothing_test() {
    clock_t start = clock();

    for (int i = 0; i < MAX_COUNT; i++)
    ;

    printf("Empty: %f\n", ((float)(clock()-start)/CLOCKS_PER_SEC));
}


void stack_create_test() {
    clock_t start = clock();

    for (int i = 0; i < MAX_COUNT; i++) {
        int arr[10] = { 0, };
    }

    printf("Stack: %f\n", ((float)(clock()-start)/CLOCKS_PER_SEC));
}


void heap_create_test() {
    clock_t start = clock();

    for (int i = 0; i < MAX_COUNT; i++) {
        int *arr = malloc(sizeof(int)*10);
        free(arr);
    }

    printf("Heap:  %f\n", ((float)(clock()-start)/CLOCKS_PER_SEC));
}

int main(int argc, char **argv) {
    do_nothing_test();
    stack_create_test();
    heap_create_test();
    return 0;
}

결과

chobocho@Chobocho-Mint:~/github/cpp_study/src/memory$ ./a.out
Empty: 0.003636
Stack: 0.003976
Heap:  0.015938

'Coding > CPP 삽질기' 카테고리의 다른 글

별 그리기  (0) 2021.06.08
[C] Binary search  (0) 2020.12.06
Quick sort  (0) 2017.07.13
Posted by chobocho
Coding/Python 삽질기2011. 6. 16. 01:17
#-*- coding: cp949 -*-
#
# undo/redo 구현 방법
# 1) undo stack를 만든다.
# 2) redo stack를 만든다.
# 3) 새로운 액션을 undo에 넣는다.
# 4) 사용자가 undo를 선택하면 redo.append ( undo.pop() ) 를 수행한다.
# 5) 사용자가 redo를 선택하면 undo.append ( redo.pop() ) 를 수행한다.

undo = []
redo = []

undo.append (1)
undo.append (2)
undo.append (3)
redo.append ( undo.pop() )


print undo
print redo
Posted by chobocho