본문 바로가기
반응형

분류 전체보기321

프로그램 성능 개선: 코드 미세조정 - 공통된 부분 표현식을 하나로 모으라 - 비싼 연산을 싼 연산으로 대체해라: 연산강도의 감축(reduction in strength) ex. 나눗셈과 나머지 연산은 곱셈보다 훨씬 느리다. 따라서 나눗셈을 곱셈의 역연산으로 대체한다든가, 나누는 수가 2의 승수일 때 마스킹 연산(AND 연산)으로 나머지 연산을 대체하면 성능을 개선할 수 있을 것이다. - 루프를 펼치거나 제거하라 루프를 준비하고 실행하는 데에는 시간과 메모리가 든다. 만약 루프가 너무 길지 않다면, 반복주기 내용을 쭉 장성하는 게 더 효율적일 수 있다. for i in range(3): a[i] = b[i] + c[i] 대신 a[0] = b[0] + c[0] a[1] = b[1] + c[1] a[2] = b[2] + c[2] 을 사용하면 .. 2017. 9. 25.
프로세스(Process) 0. 서버 개발을 하면 언젠가 반드시 마주치는 주제. 컴퓨터 공학을 전공했다면 학부생 때 배웠겠지만 비전공자 프로그래머는 스스로 공부하지 않으면 잘 모른다. 1. 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 프로그램과 프로세스는 약간 다른 개념인데, 프로그램은 일반적으로 하드디스크에 저장돼 있는 실행코드를 뜻하고, 프로세스는 프로그램이 메모리 상에서 실행될 때의 작업 단위이다. 예를 들어, 하나의 프로그램을 여러 번 구동하면 여러 개의 프로세스가 메모리 상에서 실행된다. 이해가 잘 가지 않는다면 ctrl + alt + Del 을 눌러 작업 관리자에 들어가보자. 프로세스 탭을 보면 내가 사용하고 있는 프로그램들이(보이지 않는 것들까지) 죽 나열돼있다. 각각의 프로그램들의 CPU.. 2017. 9. 20.
[python] Python을 web에서 컴파일하는 여러 가지 방법 0. pypy.jshttps://github.com/pypyjs/pypyjs (1,135 stars) input()을 하면 EOFError를 일으킨다! 1. brythonhttp://brython.info/index.html (공식 사이트가 느리고 허접하다. 그래도 에디터나 콘솔을 테스트해볼 수 있음) https://github.com/brython-dev/brython (1,308 stars)만약 웹에서 파이썬 에디터나 콘솔을 만들고 싶다면 pypy.js보다는 이걸 더 추천한다. 사용한 지 좀 돼서 가물가물하긴 하지만, pypy.js보다 사용 방법이 더 간단하고 input()처리가 가능하다. 다만 input()을 웹 alert 창으로 받아서...좀 읭스럽긴 하다. html에 이렇게 brython.js를.. 2017. 9. 13.
[python] 제너레이터(Generator) 0. 몇 번 읽어서 겨우 감이 잡힌 제너레이터/이터레이터 노트에 정리해뒀는데 일주일에 한 번씩 읽어야 안 까먹음 젠쟝 사실 지금도 벌써 가물가물하다. 1. yield 라는 구문을 통해 이루어진다(?) 신기하게도 파이썬은 2에서 3으로 바뀐 뒤로, print나 exec 같이 대부분의 구문에 괄호가 생겼는데 yield는 파이썬3에서도 괄호가 없다. 왜지. 2. 오 스택오버플로우에 누군가가 질문을https://stackoverflow.com/questions/31468049/why-does-the-yield-function-not-require-parentheses-in-python 질문 >> print나 yield 둘 다 값 리턴해줌 근데 파이썬2에서 3으로 바뀔 때, print는 소괄호를 필요로 하지만 y.. 2017. 9. 12.
반응형