지금까지는 주로 구현하기 쉬운가에 대해 얘기했지만, 자료 구조를 선택할 때는 다른 요인들도 고려해야 한다. 한 가지는 런타임이다. 어떤 자료 구조가 다른 자료 구조보다 빠른 데에는 종종 이론적인 이유가 있다. 예를 들어 원소의 개수가 매우 많다면 in 연산자는 리스트보다 사전에서 더 빠르다.
그러나 어떤 구현이 더 빠른지 항상 미리 알 수는 없다. 한 가지 방법은 두 가지를 모두 구현하고, 어느 쪽이 더 나은지 관찰하는 것이다. 이러한 방법은 벤치마킹(benchmarking)이라고 한다. 실용적인 방법으로는 구현이 가장 쉬운 자료 구조를 선택한 후에 의도한 응용 프로그램에 쓸 만큼 빠른지 관찰하는 것이다. 충분히 빠르다면 더 계속하지 않아도 된다. 그렇지 않다면 profile 모듈 같은 도구를 사용해 프로그램에서 가장 긴 시간이 걸리는 부분을 찾아내야 한다.
고려할 다른 요인으로는 저장 공간이 있다. 예를 들어 접미어 컬렉션에 히스토그램을 사용하면 텍스트에 해당 단어가 몇 번이 나와도 각 단어를 한 번만 저장하면 되므로 작은 공간만 차지한다. 어떤 경우에는 공간 절약 덕분에 프로그램 실행 속도가 더 빨라지기도 한다. 극단적인 경우지만 메모리가 부족하면 프로그램이 실행조차 안 될 수 있다. 그러나 많은 응용 프로그램에서 공간은 런타임 이후에 부차적으로 고려된다.
마지막 결론: 지금까지의 논의에서 나는 분석과 프로그램의 생성에 한 가지 자료 구조를 사용해야 한다고 전제해왔다. 그러니 이 둘은 별도의 단계이므로 분석 단계에서 한 가지 자료 구조를 사용하고 프로그램의 생성 단계에서 다른 자료 구조로 변환할 수도 있다. 프로그램의 생성에서 절약한 시간이 변환에 들어간 시간을 초과하지 않는다면 이런 방법도 실제로는 이득이 된다.