реализовал упражнение из сикпа, где идет построение списка. если меня интересует только последний элемент, то сборщик мусора может смело собрать мусор(предыдущие элементы списка), что он с успехом и делает когда я использую тип данных Integer.
при этом функциональное решение на хаскеле рвало в хвост и гриву императивное решение, где юзался BigInteger. а все из-за того что на создание каждого элемента BigInteger нужно было выделить память.
но у меня возник вопрос, а если бы значения не выходили за предел Int64 или Double, какое было бы соотношение производительности хаскеля и си_шарпа. и несмотря на переполнение, я решил потестить прогу для Int64, и видимо в силу каких-то оптимизаций, сборщик мусора перестал очищать память от прошлых элементов, и мне не хватает оперативы.
внимание вопрос: как отключить эту оптимизацию(или что оно там такое), что-бы мусор также собирался и для примитивных типов?