powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничный идеальный сборщик мусора
12 сообщений из 87, страница 4 из 4
Тяпничный идеальный сборщик мусора
    #39273903
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНасколько вообще проблема циклических ссылок актуальна?

Ну... не в рамках теоретических рассуждений. А из практики.
Кто может сказать что он напоролся на Cyclic reference и к
чему это приводило?
Я в фокспро натыкался: независимая работа нескольких форм, причем каждая хранить ссылку на контрол другой чтобы при закрытии туда перевести фокус. При закрытии одной из форм фокс завешивался намертво. Пришлось свой антизацикливатель писать.
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39274136
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЛучше хотя бы тем что поток полностью асинхронный и не требует прерывания основного. С ядрами нынче проблем нет. В основном проблемы чем бы их занять.
1) Для GC необязательно останавливать потоки.
2) Асинхронность означает, что возможны ситуации нехватки памяти только из-за того что очищающий поток не успевает ее очистить (а не потому что алгоритм неоптимальный или памяти мало). Собственно это основная претензия к GC.
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39274932
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИнтересно почему?Вы уже научились гарантировать ацикличность графа ссылок?
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39274933
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovDima TИнтересно почему?Вы уже научились гарантировать ацикличность графа ссылок?
Как бы уже обсудили цикличные ссылки.
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39274934
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TКак бы уже обсудили цикличные ссылки.Я настолько удивился, что этот вопрос не был первым, что даже не дочитал до начала обсуждения.
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39274937
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovDima TКак бы уже обсудили цикличные ссылки.Я настолько удивился, что этот вопрос не был первым, что даже не дочитал до начала обсуждения.
в начале это не упоминалось. Ты не почитал ответы на процитированный вопрос, т.е. недочитав начал повторять то что уже сказано. Сначала дочитывай топик, потом уже можно вопросом на вопрос. Ладно проехали.
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39275132
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Затестил счетчики, результаты печальные, понятно почему от них отказались

исходникMS VC 2015 Express
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>

#include<windows.h>

#include <atomic>
#include <thread>

int cnt = 0;
std::atomic<int> acnt = 0;

void testint() {
	int t = clock();
	while(1) {
		cnt++;
		if(cnt == 0) {
			printf("test int %d ms\n", clock() - t);
			break;
		}
	}
}

void testatomic() {
	int t = clock();
	while (1) {
		acnt++;
		if (acnt == 0) {
			printf("test atomic %d ms\n", clock() - t);
			break;
		}
	}
}

void main() {
	testint();
	testatomic();
	printf("multithread\n");
	std::thread t1(testatomic);
	std::thread t2(testatomic);
	std::thread t3(testatomic);
	t1.join();
	t2.join();
	t3.join();
}


Результатtest int 1074 ms // однопоточно
test atomic 33306 ms // однопоточно
multithread
test atomic 93025 ms // первый из 3х потоков
test atomic 181792 ms
test atomic 215049 ms

Счетчик из просто int в 33 раза быстрее std::atomic<int> и в 90 раз быстрее если второй используется несколькими потоками. Потоки честно распределились по разным ядрам, диспетчер задач показывал общую загрузку 76-77% для 4х ядер. С двумя потоками результаты такие же.

В общем это вообще не вариант для многопототочных ЯП.
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39275133
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХУ, по результатам тестов, lock-free алгоритмы тоже не очень перспективное направление развития
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39275141
lockfree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TИМХУ, по результатам тестов, lock-free алгоритмы тоже не очень перспективное направление развития
По каким тестам и какие алгоритмы?
ordered map более менее масштабируются, а unordered map вообще хорошо
https://habrahabr.ru/post/251267/
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39275147
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockfree, нездоровая картинка, начинается с 2-х а не одного потока, как туда смог попасть std::map вообще непонятно, он не потокобезопасный, мутексом наверно обернули. Потом давай эту картинку растянем на нормальную шкалу, где нет 8-4 = 32-16 и увидим что все равно каждый график уходит в горизонтальную прямую.
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39275148
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockfreeПо каким тестам и какие алгоритмы?
Исходники я выложил 19419141 в отличие от автора картинки.
...
Рейтинг: 0 / 0
Тяпничный идеальный сборщик мусора
    #39275152
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockfreeordered map более менее масштабируются, а unordered map вообще хорошо
Давай код, затестим. Я не утверждаю что мои тесты идеальны, но разница почти на два порядка напрягает.
...
Рейтинг: 0 / 0
12 сообщений из 87, страница 4 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничный идеальный сборщик мусора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]