Size: a a a

Язык программирования Julia / Julia programming language

2020 May 24

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Попробуй Base.summarysize
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
272
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Видимо компилятор решил, что слишком большая структура для стека и разместил в куче.
источник
2020 May 25

VG

Viktor G. in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
пишет якобы 8, но если брать размеры полей, то они больше
или там mutable struct
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
Не mutable )
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
я просто хотел zero-cost abstraction над NTuple
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
у меня кортеж функций, и в зависимости от их типов их нужно немного по-разному применять к поданному аргументу
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
если это прямое произведение отображений, то нужно каждую f_i применить к соответствующему x_i
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
а если это многомерная функция, то каждый f_i применяется к x целиком
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
и поскольку у меня эти функции конструируются в одном из глубоко внутренних циклов, хотелось бы вообще без аллокаций
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Скорее всего компилятор в какой-то момент сдался и сделал кортеж из указателей.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Или каких-то других структур, которые знают, как прыгнуть в нужное место и исполнить функцию.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
А тип он правильный показывает?
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
кого именно? )
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
типы везде правильные (NTuple и т.д.)
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
более того, если я даже NTuple убираю, а делаю просто Foo с полем типа T
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
А разве у тупла функций должен быть NTuple?
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
Да, у меня функция — это тоже структура
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
потому что по сути функция — это массив чисел с переопределенными операциями (дискретные функции)
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Хм.
Ну, без того, чтобы смотреть внутрь сложно догадаться, что там может происходить.

Но вот я тут такой пример собрал
z = (x -> x, x -> x^2, x -> x^3, x -> x^4, x -> x^5, x -> x^6, x -> x^7, x -> x^8, x -> x^9, x -> x^10)
sizeof(z) # 0
z2 = ntuple(i -> (x -> x^i), 10)
sizeof(z2) # 80
источник