Re[2]: как объяснить идиоту?...
От: andrey82  
Дата: 28.07.11 07:30
Оценка: +2 :))) :))
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Klatu, Вы писали:


K>>Тут один девелопер утверждает, что если Dictionary (.NET) сделать статическим полем, то код автоматически станет потоко-безопасным. http://files.rsdn.org/94511/facepalm.gif

K>>То есть уровень (не)понимания вопроса катастрофический. Как объяснить ему на пальцах, чтобы дошло?

L>А на документацию сослаться не вариант?


Возможно, что его заклинило на этой часто встречающейся фразе:

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Re[3]: как объяснить идиоту?...
От: adontz Грузия http://adontz.wordpress.com/
Дата: 28.07.11 05:25
Оценка: 30 (4) +2
Здравствуйте, Klatu, Вы писали:

K>баг будет проявляться очень нестабильно, а код вызывается не очень часто

using System;
using System.Collections.Generic;
using System.Threading;

namespace TestDictionary
{
    public static class Program
    {
        private static readonly IDictionary<int, int> _dictionary = new Dictionary<int, int>();
        private static readonly Random _random = new Random();

        public static void Main(string[] args)
        {
            for (int thread = 0; thread < 4; thread++)
                new Thread(
                    delegate()
                    {
                        for (int index = 0; ; index++)
                        {
                            int key = _random.Next(10);
                            int value = _random.Next(200) - 100;

                            if (value >= 0)
                            {
                                _dictionary[key] = value;
                            }
                            else
                            {
                                _dictionary.Remove(key);
                            }
                        }
                    }).Start();

            for (int thread = 0; thread < 4; thread++)
                new Thread(
                    delegate()
                    {
                        for (; ; )
                        {
                            int key = _random.Next(10);
                            int value;

                            if (_dictionary.TryGetValue(key, out value))
                            {
                            }
                        }
                    }).Start();
        }
    }
}

У меня падает на первой секунде.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: как объяснить идиоту?...
От: adontz Грузия http://adontz.wordpress.com/
Дата: 28.07.11 05:03
Оценка: +6
Здравствуйте, Klatu, Вы писали:

Тестовый приер где всё падает?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[9]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 07.08.11 18:10
Оценка: 18 (1) :))
Здравствуйте, Klatu, Вы писали:

ГВ>>Всё же расскажи о способе использования этого Dictionary?


K>

K>
K>                if (!Messages.TryGetValue(type, out lookup))
K>                {
K>                    lookup = _client.Messaging.GetSystemLookup(type, code);
K>                    Messages[type] = lookup;
K>                }
K>


Я так понимаю, что количество значений type ограничено?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: как объяснить идиоту?...
От: sourcerer Германия  
Дата: 02.08.11 09:11
Оценка: 17 (3)
Здравствуйте, Klatu, Вы писали:

K>Тут один девелопер утверждает, что если Dictionary (.NET) сделать статическим полем, то код автоматически станет потоко-безопасным. http://files.rsdn.org/94511/facepalm.gif

K>То есть уровень (не)понимания вопроса катастрофический. Как объяснить ему на пальцах, чтобы дошло?

На пальцах — не знаю (тут просто непонимание принципов многопотокового программирования), а вот так чтоб навсегда запомнил

http://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0123705916/ref=sr_1_1?ie=UTF8&amp;qid=1312276183&amp;sr=8-1

категорически рекомендую.
Недостатки прощаются, достоинства — никогда.
Re[2]: как объяснить идиоту?...
От: Klatu  
Дата: 03.08.11 05:32
Оценка: :)))
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>А поподробнее контекст можно? Желательно с sequence-диаграммами обращения, взятым из production-кода или их подобием. Просто "обращение из разных потоков" далеко не всегда означает "одновременное обращение из разных потоков".


Даже если допустить, что обращение не одновременное (что неверно), то разделение объекта между тредами без использования барьера памяти все равно недопустимо.
Если ты не знаешь азы, то не позорься лучше со своими диаграммами.
Re[6]: как объяснить идиоту?...
От: Klatu  
Дата: 06.08.11 06:55
Оценка: -1 :)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Что, вообще ни одной синхронизации во всём приложении?


Синхронизация и барьер памяти не одно и то же. Опять палишься.
Вообще есть. Конкретно в этой части — нет.
Re: как объяснить идиоту?...
От: Lloyd Россия  
Дата: 28.07.11 06:40
Оценка: 1 (1)
Здравствуйте, Klatu, Вы писали:

K>Тут один девелопер утверждает, что если Dictionary (.NET) сделать статическим полем, то код автоматически станет потоко-безопасным. http://files.rsdn.org/94511/facepalm.gif

K>То есть уровень (не)понимания вопроса катастрофический. Как объяснить ему на пальцах, чтобы дошло?

А на документацию сослаться не вариант?
как объяснить идиоту?...
От: Klatu  
Дата: 28.07.11 05:03
Оценка: :)
Тут один девелопер утверждает, что если Dictionary (.NET) сделать статическим полем, то код автоматически станет потоко-безопасным. http://files.rsdn.org/94511/facepalm.gif
То есть уровень (не)понимания вопроса катастрофический. Как объяснить ему на пальцах, чтобы дошло?
Re: как объяснить идиоту?...
От: boot  
Дата: 28.07.11 05:20
Оценка: :)
Здравствуйте, Klatu, Вы писали:

K>Тут один девелопер утверждает, что если Dictionary (.NET) сделать статическим полем, то код автоматически станет потоко-безопасным. http://files.rsdn.org/94511/facepalm.gif

K>То есть уровень (не)понимания вопроса катастрофический. Как объяснить ему на пальцах, чтобы дошло?

Выпрямляете все пальцы на правой руке.
Загибаете мизинец, безымянный и средний пальцы.
Большой палец распологаете между средним и указательным.
Загибаете указательный палец.
Дальнейшая распальцовка по обстановке.
Жизнеспособность прямо пропорциональна простоте!
Re: как объяснить идиоту?...
От: Deprivator  
Дата: 29.07.11 19:45
Оценка: +1
Здравствуйте, Klatu, Вы писали:

K>Тут один девелопер утверждает, что если Dictionary (.NET) сделать статическим полем, то код автоматически станет потоко-безопасным. http://files.rsdn.org/94511/facepalm.gif

K>То есть уровень (не)понимания вопроса катастрофический. Как объяснить ему на пальцах, чтобы дошло?

статья 81 п.3б трудового кодекса, там доходчиво написано.
In P=NP we trust.
Re: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 01.08.11 02:01
Оценка: :)
Здравствуйте, Klatu, Вы писали:

K>Тут один девелопер утверждает, что если Dictionary (.NET) сделать статическим полем, то код автоматически станет потоко-безопасным. http://files.rsdn.org/94511/facepalm.gif

K>То есть уровень (не)понимания вопроса катастрофический. Как объяснить ему на пальцах, чтобы дошло?

А поподробнее контекст можно? Желательно с sequence-диаграммами обращения, взятым из production-кода или их подобием. Просто "обращение из разных потоков" далеко не всегда означает "одновременное обращение из разных потоков".

Я это спрашиваю, имея в виду вот это обсуждение
Автор: Klatu
Дата: 29.07.11
.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: как объяснить идиоту?...
От: alf_kadett  
Дата: 02.08.11 13:36
Оценка: -1
Здравствуйте, Klatu, Вы писали:

K>Тут один девелопер утверждает, что если Dictionary (.NET) сделать статическим полем, то код автоматически станет потоко-безопасным. http://files.rsdn.org/94511/facepalm.gif

K>То есть уровень (не)понимания вопроса катастрофический. Как объяснить ему на пальцах, чтобы дошло?

Пойти в HR и написать заявление, дел-то.
Re[2]: как объяснить идиоту?...
От: Undying Россия  
Дата: 03.08.11 06:00
Оценка: +1
Здравствуйте, alf_kadett, Вы писали:

_>Пойти в HR и написать заявление, дел-то.


Ты встретившись с проблемой всегда от нее пытаешься убежать?
Re[7]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.08.11 23:43
Оценка: +1
Здравствуйте, Klatu, Вы писали:

ГВ>>Что, вообще ни одной синхронизации во всём приложении?

K>Синхронизация и барьер памяти не одно и то же. Опять палишься.

См. сюда:

The following synchronization functions use the appropriate barriers to ensure memory ordering:

* Functions that enter or leave critical sections
* Functions that signal synchronization objects
* Wait functions
* Interlocked functions


K>Вообще есть. Конкретно в этой части — нет.


Всё же расскажи о способе использования этого Dictionary?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[11]: как объяснить идиоту?...
От: Sinix  
Дата: 08.08.11 07:53
Оценка: :)
Здравствуйте, Klatu, Вы писали:

K>Как ты представляешь себе неограниченное количество значений в данном случае?

[k.o.]
Через Activator.CreateInstance() или emit наследников?
[/k.o.]
Re[19]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 08.08.11 09:47
Оценка: :)
Здравствуйте, Klatu, Вы писали:

ГВ>>Так reference или value?


K>Строка.


Ясно. Короче говоря — Dictionary<string, string>.

Теперь такой вопрос: когда Messages оказывается заполненным всеми возможными ключами? По коду-то я вижу, что пополнение может происходить в любой момент. Хотелось бы узнать, как оно происходит на самом деле. То есть может ли статься такое, что этот Dictionary заполняется где-то на старте?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[20]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 11:39
Оценка: -1
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Теперь такой вопрос: когда Messages оказывается заполненным всеми возможными ключами? По коду-то я вижу, что пополнение может происходить в любой момент. Хотелось бы узнать, как оно происходит на самом деле.


Ты крайне много занимаешься домыслами. Будь осторожен — говорят, от этого растут волосы на руках.

ГВ>То есть может ли статься такое, что этот Dictionary заполняется где-то на старте?


Нет.
Re[22]: как объяснить идиоту?...
От: Klatu  
Дата: 09.08.11 07:00
Оценка: -1
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Ещё вопрос: откуда появляются значения type? Например, они порождаются из каких-то данных, приходящих по сети или ещё откуда-то? И потом — ты пробовал прикидывать интенсивность потока обращений к Dictionary, и соответственно — интенсивность модификаций?


Тебе еще не надоело спрашивать не имеющие значения вопросы?

ГВ>То, что это очень похоже на кэш для GetSystemLookup я вижу, разумеется.


Ну хоть это радует.
Re[2]: как объяснить идиоту?...
От: Klatu  
Дата: 28.07.11 05:14
Оценка:
Здравствуйте, adontz, Вы писали:

A>Тестовый приер где всё падает?


баг будет проявляться очень нестабильно, а код вызывается не очень часто
Re: как объяснить идиоту?...
От: Sharov Россия  
Дата: 28.07.11 06:38
Оценка:
Здравствуйте, Klatu, Вы писали:

Скажите, что для этих целей есть ConcurrentDictionary и они не просто так отличаются названием.
Кодом людям нужно помогать!
Re: как объяснить идиоту?...
От: alexeiz  
Дата: 01.08.11 06:16
Оценка:
Здравствуйте, Klatu, Вы писали:

K>Тут один девелопер утверждает, что если Dictionary (.NET) сделать статическим полем, то код автоматически станет потоко-безопасным. http://files.rsdn.org/94511/facepalm.gif

K>То есть уровень (не)понимания вопроса катастрофический. Как объяснить ему на пальцах, чтобы дошло?

Иногда никак. Это еще семечки. Бывает и хуже. Главное, не принимай близко к сердцу.
Re[2]: как объяснить идиоту?...
От: Klatu  
Дата: 03.08.11 05:32
Оценка:
Здравствуйте, sourcerer, Вы писали:

S>На пальцах — не знаю (тут просто непонимание принципов многопотокового программирования), а вот так чтоб навсегда запомнил


S>http://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0123705916/ref=sr_1_1?ie=UTF8&amp;qid=1312276183&amp;sr=8-1


S>категорически рекомендую.


А на русском есть?
Re[3]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 03.08.11 22:31
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>А поподробнее контекст можно? Желательно с sequence-диаграммами обращения, взятым из production-кода или их подобием. Просто "обращение из разных потоков" далеко не всегда означает "одновременное обращение из разных потоков".


K>Даже если допустить, что обращение не одновременное (что неверно), то разделение объекта между тредами без использования барьера памяти все равно недопустимо.


Совершенно не обязательно явно вызывать барьер памяти при обращении к разделяемому ресурсу: он может выполняться "где-то рядом". Собственно, поэтому я и спросил про контекст.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: как объяснить идиоту?...
От: Klatu  
Дата: 06.08.11 06:24
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Совершенно не обязательно явно вызывать барьер памяти при обращении к разделяемому ресурсу: он может выполняться "где-то рядом".


Верный способ напороться на проблемы. Но рядом тоже нет. И вообще их там нет.
А ты крайне много занимаешься домыслами.
Re[5]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.08.11 06:50
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>Совершенно не обязательно явно вызывать барьер памяти при обращении к разделяемому ресурсу: он может выполняться "где-то рядом".

K>Верный способ напороться на проблемы. Но рядом тоже нет. И вообще их там нет.

Что, вообще ни одной синхронизации во всём приложении?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[8]: как объяснить идиоту?...
От: Klatu  
Дата: 07.08.11 03:12
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Всё же расскажи о способе использования этого Dictionary?



                if (!Messages.TryGetValue(type, out lookup))
                {
                    lookup = _client.Messaging.GetSystemLookup(type, code);
                    Messages[type] = lookup;
                }
Re[10]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 07:50
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Я так понимаю, что количество значений type ограничено?


Как ты представляешь себе неограниченное количество значений в данном случае?
Re[12]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 07:57
Оценка:
Здравствуйте, Sinix, Вы писали:

S>[k.o.]

S>Через Activator.CreateInstance() или emit наследников?
S>[/k.o.]

Капитан, ты поддельный. Я нихрена не понял, что ты пытаешься сказать.
Re[11]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 08.08.11 08:04
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>Я так понимаю, что количество значений type ограничено?

K>Как ты представляешь себе неограниченное количество значений в данном случае?

Хорошо. Тогда поехали дальше: что из себя представляют типы данных lookup и type? И как объявлен Messages (я так полагаю, это и есть тот самый злополучный Dictionary)?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[12]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 08:06
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Хорошо. Тогда поехали дальше: что из себя представляют типы данных lookup и type? И как объявлен Messages (я так полагаю, это и есть тот самый злополучный Dictionary)?


А что это меняет?
Re[13]: как объяснить идиоту?...
От: Sinix  
Дата: 08.08.11 08:07
Оценка:
Здравствуйте, Klatu, Вы писали:

K>Капитан, ты поддельный. Я нихрена не понял, что ты пытаешься сказать.


                if (!Messages.TryGetValue(type, out lookup))
                {
                    lookup = _client.Messaging.GetSystemLookup(type, code);
                    Messages[type] = lookup;
                }

...
Как ты представляешь себе неограниченное количество значений в данном случае?


  Lookup GetSystemLookup(Type type, Code code)
  {
    return new Lookup(Activator.CreateInstance(type), code);
  }

?
Re[14]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 08:18
Оценка:
Здравствуйте, Sinix, Вы писали:

S>
S>  Lookup GetSystemLookup(Type type, Code code)
S>  {
S>    return new Lookup(Activator.CreateInstance(type), code);
S>  }
S>

S>?

И как это влияет на безопасность этого кода?
type там, кстати, ни хрена не Type а просто строка.
Re[15]: как объяснить идиоту?...
От: Sinix  
Дата: 08.08.11 08:38
Оценка:
Здравствуйте, Klatu, Вы писали:


K>И как это влияет на безопасность этого кода?


Напомню, вопрос звучал несколько иначе:

Как ты представляешь себе неограниченное количество значений в данном случае?


По теме — уже ответили примером буквально во 2м/3м посте, решается расстановкой lock-ов/переходом на ConcurrentDictionary.

K>type там, кстати, ни хрена не Type а просто строка.

Ну будет Activator.CreateInstance(Type.GetType(type)) — разницы-то?

Или, если в строке не тип объекта, а произвольный текст — какие вообще проблемы в изобретении неограниченного (строго говоря, ~2^2^34) количества значений?
Re[13]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 08.08.11 08:40
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>Хорошо. Тогда поехали дальше: что из себя представляют типы данных lookup и type? И как объявлен Messages (я так полагаю, это и есть тот самый злополучный Dictionary)?

K>А что это меняет?

Это уточняет представление о ситуации.

В общем, type, как я понял — строка. Осталось узнать, каков тип lookup.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[16]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 08:45
Оценка:
Здравствуйте, Sinix, Вы писали:

S>По теме — уже ответили примером буквально во 2м/3м посте, решается расстановкой lock-ов/переходом на ConcurrentDictionary.


Ты удивительно проницателен.

S>Или, если в строке не тип объекта, а произвольный текст — какие вообще проблемы в изобретении неограниченного (строго говоря, ~2^2^34) количества значений?


неограниченным оно не будет, по банальное причине нехватки памяти
Re[14]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 08:45
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Это уточняет представление о ситуации.


Уточняет представление о не имеющих никакого значения аспектах.
Re[17]: как объяснить идиоту?...
От: Sinix  
Дата: 08.08.11 08:47
Оценка:
Здравствуйте, Klatu, Вы писали:

K>Ты удивительно проницателен.

И что мы тогда обсуждаем?

K>неограниченным оно не будет, по банальное причине нехватки памяти

Ок, признаю, k.o. теперь вы
Re[18]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 08:49
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, Klatu, Вы писали:


K>>Ты удивительно проницателен.

S>И что мы тогда обсуждаем?

Да вот ГВ пытается мне доказать, что этот код должен быть безопасен.
Re[15]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 08.08.11 09:04
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>Это уточняет представление о ситуации.

K>Уточняет представление о не имеющих никакого значения аспектах.

Собственно, вопрос про lookup звучит так: это reference- или value-тип?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[16]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 09:09
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, Klatu, Вы писали:


ГВ>>>Это уточняет представление о ситуации.

K>>Уточняет представление о не имеющих никакого значения аспектах.

ГВ>Собственно, вопрос про lookup звучит так: это reference- или value-тип?


А что это меняет?
Re[17]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 08.08.11 09:26
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>>>Это уточняет представление о ситуации.

K>>>Уточняет представление о не имеющих никакого значения аспектах.
ГВ>>Собственно, вопрос про lookup звучит так: это reference- или value-тип?
K>А что это меняет?

Так reference или value?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[18]: как объяснить идиоту?...
От: Klatu  
Дата: 08.08.11 09:37
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, Klatu, Вы писали:


ГВ>>>>>Это уточняет представление о ситуации.

K>>>>Уточняет представление о не имеющих никакого значения аспектах.
ГВ>>>Собственно, вопрос про lookup звучит так: это reference- или value-тип?
K>>А что это меняет?

ГВ>Так reference или value?


Строка. Давай, спроси еще что-нибудь жутко важное
Re[21]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 08.08.11 12:46
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>То есть может ли статься такое, что этот Dictionary заполняется где-то на старте?

K>Нет.

Ещё вопрос: откуда появляются значения type? Например, они порождаются из каких-то данных, приходящих по сети или ещё откуда-то? И потом — ты пробовал прикидывать интенсивность потока обращений к Dictionary, и соответственно — интенсивность модификаций? То, что это очень похоже на кэш для GetSystemLookup я вижу, разумеется.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[23]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.08.11 08:47
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>Ещё вопрос: откуда появляются значения type? Например, они порождаются из каких-то данных, приходящих по сети или ещё откуда-то? И потом — ты пробовал прикидывать интенсивность потока обращений к Dictionary, и соответственно — интенсивность модификаций?

K>Тебе еще не надоело спрашивать не имеющие значения вопросы?

Нет, не надоело и я жду ответов. В предыдущем сообщении поставлено три вопроса, ответь на них, будь добр.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[24]: как объяснить идиоту?...
От: Klatu  
Дата: 09.08.11 10:24
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, Klatu, Вы писали:


ГВ>>>Ещё вопрос: откуда появляются значения type? Например, они порождаются из каких-то данных, приходящих по сети или ещё откуда-то? И потом — ты пробовал прикидывать интенсивность потока обращений к Dictionary, и соответственно — интенсивность модификаций?

K>>Тебе еще не надоело спрашивать не имеющие значения вопросы?

ГВ>Нет, не надоело и я жду ответов. В предыдущем сообщении поставлено три вопроса, ответь на них, будь добр.


Ладно, посмотрим насколько хватит твоего упрямства
Из сети. Не очень часто.
Еще вопросы?
Re[25]: как объяснить идиоту?...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.08.11 13:25
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>>>Ещё вопрос: откуда появляются значения type? Например, они порождаются из каких-то данных, приходящих по сети или ещё откуда-то? И потом — ты пробовал прикидывать интенсивность потока обращений к Dictionary, и соответственно — интенсивность модификаций?

K>Из сети. Не очень часто.

Отлично, примерно так я и думал.

K>Еще вопросы?


Пока нет, попозже отвечу более развёрнуто.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.