Я тут ковырял аллокаторы памяти, и оказалось что это проблема того же рода (1D cutting stock problem), немного осложненная фрагментацией и неизвестностью куска заранее. Короч в этой теме довольно сильно рулит тот же first-fit, причем он в тестах на втором месте, а на первом какой-то ад на пару тысяч строк. Для сравнения first-fit это меньше ста строк.