C: Function pointer forward declaration

38 отговора 0 прегледа
в отговор на zaphod #21

Re: C: Function pointer forward declaration

Ми така де, бентлито колко лайна да пренесе повече от каруцата
Даже по-малко според мене. Те и за това сигурно по-малко ги карат :)

скалируемост и интерактивност благодарение на foo базираният си бекенд и захранен от AJAX фронтенд
Отговор
в отговор на Eвлaмпи Пoпдимитpoв #22

Re: C: Function pointer forward declaration

ами според феновете на ГЦ дава предимства, затова се позлва в манагед езиците. например можеш да дефрагментираш, сумарно времето за освобождаване било по-малко спрямо смарт поинтер.... сигурно има много дълбока и много сериозна причина, която обаче феновете не знаят, щото тия неща не ми звучат сериозно.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на zaphod #23

Re: C: Function pointer forward declaration

Най-малко е времето за деалокациа, когато не се деалокира въобще. Ама е сложно за имплементиране.

Отговор
в отговор на _gruhal_ #24

Re: C: Function pointer forward declaration

1) На края на using блока ще се извика dispose, finalize или какъвто там беше методът.
2) Ще ти се изсмее компилатора а няма да се чудиш защо не ти работи програмата.
3) Не си придавай важности, опитвайки се да говориш за неща извън темата, разбрахме, че знаеш много, но човек когато знае трябва да си прилагазнанията на правилното място, така че марш да кодиш!

Отговор
в отговор на SoulDeaD #25

Re: C: Function pointer forward declaration

А в твоя случай, като не знае, е добре да внимава какво пише, да не се окаже, че шефа му чете.

Отговор
в отговор на zaphod #26

Re: C: Function pointer forward declaration

Ми спестява някои мъки, по-бързо е например да оставиш на ГЦ да маже, от колкото да си правиш object pool-ове. От друга страна драмата, ако трябва да правиш нещо наистина бързо е огромна, щото GC-то вкарва много неприятен jitter, си се почваш да се чудиш как да алокираш колкото по-малко може.

Отговор
в отговор на _gruhal_ #27

Re: C: Function pointer forward declaration

не говоря за манагед код въобще, а за това как технически да се изпълни - като ГЦ или като смарт поинтери. никой не говори за правене на пулове и други такива неща.
смарт поинтера пази брояч на референциите и унищожава когато стане нула. ГЦ периодично облъчва паметта влизайки през стека и всичко до което не стигне светлина бива изтривано.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на zaphod #28

Re: C: Function pointer forward declaration

Е явно не си ме разбрал.

Аз ти давам примери кога ГЦ помага и кога пречи щото ми се стори че питаш каква е далаверата от него. По принцип в C++ за да не трашваш паметта, чето се правят object pool-ове, е с ГЦ това например е безмислено. Надявам се така примера е по-ясен.

Аз знам как работят смарт поинтерите, щото редовно си ги ползвам. Тва как ГЦ влизало през стека ще се направя, че не съм го прочел - ако ти е интересно как работи - има тонове инфо на гугъл.

Отговор
в отговор на _gruhal_ #29

Re: C: Function pointer forward declaration

>>Тва как ГЦ влизало през стека ще се направя, че не съм го прочел - ако ти е интересно как работи - има тонове инфо на гугъл.

Едно от местата от където тръгва GC е точно стека, за да провери референции от локални променливи към обекти в паметта. Лично според мен, спокойно може да се приеме, че това е основната област откъдето идват обектите за почистване.

С едно съм съгласен -- наистина има тонове информация в интернет по темата.

Отговор
в отговор на .mono. #30

Re: C: Function pointer forward declaration

Ахъ, малко оффтопик зе да става темата, ма кажи аджеба в Джаба:

void hui()
{
Object localVar = new Object();
}

на кой стек е тая локална променлива, че GC-то да влезе през него? Аз се си мисля, че е нейде алокиран в young generation-а в общия кейс. Може би в някой друг случай си прав.

Отговор
в отговор на _gruhal_ #31

Re: C: Function pointer forward declaration

е как на кой - на хуй функцията.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на zaphod #32

Re: C: Function pointer forward declaration

Той референса е там, алокирания обект е на путката си, gc-то не влиза през стека ми обикаля генерациите и гледа кво може да колектне.

Може за пробва да си напраиш едно малко JNI и да му паснеш некъв локален обект да си маже по него. И тва ще работи до следващия път като GC-то хитне, което не е кат излезеш от функцията.

Туй нали ако ВМ-то не е направило некъв ескейп анализ и да е набучило сичко на стека.

Много ОТ стана целия булшит.

Редактирано от _gruhal_ на

Отговор
в отговор на _gruhal_ #33

Re: C: Function pointer forward declaration

В стека на текущата нишка (Thread).
Нищо не разбирам от Джава, затова проверих в интернет:

The garbage collector first performs a task called marking. The garbage collector traverses the application graph, starting with the root objects; those are objects that are represented by all active stack frames and all the static variables loaded into the system. Each object the garbage collector meets is marked as being used, and will not be deleted in the sweeping stage.

...а както много добре знаем, всичко, което е написано в интернет е вярно.

Отговор
в отговор на .mono. #34

Re: C: Function pointer forward declaration

Аха, ясно сега, ако под 'влиза през стека' разбираш 'инспектва стек фреймовете'
то тогава, съгласен съм, така е.

Явно аз не съм разбрал, защото ми се стори, че се imply-ва, че GC-то некак си магически гледа миналите стек фреймове и разкарва бившите локални променливи от там.

Отговор
в отговор на _gruhal_ #35

Re: C: Function pointer forward declaration

Хич не ми дреме, не пиша на C#

Отговор
в отговор на zaphod #36

Re: C: Function pointer forward declaration

Времето за освобождаване може да не е по-малко от смарт поинтер, но съм чел горди декларации как времето за заемане е колкото за автоматична променлива в C/C++

Отговор
в отговор на zaphod #37

Re: C: Function pointer forward declaration

Кой го ебе за пойнтери и прочие. Реф каунта е обвързващ - който жаска екстеншъни му е багер - ок не е malloc/free - +1/-1 е, но протокола го има. Гарбаже колектора те спасява от това.

скалируемост и интерактивност благодарение на foo базираният си бекенд и захранен от AJAX фронтенд
Отговор
в отговор на Eвлaмпи Пoпдимитpoв #38

Re: C: Function pointer forward declaration

говориш като някой СОМаджия, който трябва да вика релеасе на всяко пръдване. естествено че ако правим манагед език с рефкаунтъри, оператора = има честта да се грижи за кухненските въпроси свързани с броенето и освобождаването. впрочем в предната фирма писах манагед ООП език и си бачка с рефкаунтъри без грижа. дори ГЦ да е средно по-бърз, ти какво предпочиташ, кола 300 коня дето придръпва и запича, или кола 100 коня която вози като лодка?




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на zaphod #39

Re: C: Function pointer forward declaration

Самолет предпочитам естествено. От врата до врата не мое ме биеш с gallardo.

скалируемост и интерактивност благодарение на foo базираният си бекенд и захранен от AJAX фронтенд
Отговор