Переделать код

  • Автор темы Автор темы amyboose
  • Дата начала Дата начала
В VS в-среднем скорость выполнения составляет 6900 против 7500 в PM.
смешно об этом говорить, а если я за мепьшее сделаю чем студия ты 10к бваксосов выложишь ????
Конечно нет. Я взял 2 одинаковых кода и протестил. Можешь сам тот же код запихнуть в студию и там протестить, только вывод на консоль замутить не забудь.
 
у меня есть код по обработке изображения 5-тью методами. и они всегда по разному выдают, конечно unsafe и marchal лидирует в +100500 секунд, но вроемя ни когда не молжет быть одинаковым
 
у меня есть код по обработке изображения 5-тью методами. и они всегда по разному выдают, конечно unsafe и marchal лидирует в +100500 секунд, но вроемя ни когда не молжет быть одинаковым
Так я говорю о 2 абсолютно одинаковых кодах, которые тестятся в зенке и в студии. Судя по разнице в скорости, сам кубик обернут в try catch, из-за этого скорость в зенке ниже. Тем более стоит только создать вручную другой поток в PM и получить в нем исключение, как он сразу падает.
 
Так я говорю о 2 абсолютно одинаковых кодах, которые тестятся в зенке и в студии. Судя по разнице в скорости, сам кубик обернут в try catch, из-за этого скорость в зенке ниже. Тем более стоит только создать вручную другой поток в PM и получить в нем исключение, как он сразу падает.
а где поток создаёшь ?
 
где? в общем или в кубике
 
где? в общем или в кубике
в кубике, там если ошибка в потоке возникает, то сразу проект мейкер ложится, так как обработка исключений не работает на новые созданные потоки
 
в кубике, там если ошибка в потоке возникает, то сразу проект мейкер ложится, так как обработка исключений не работает на новые созданные потоки
ты пишишь про красивый код тут, читабельность и сейчас пишишь что это у тебя в одном кубе, я раньше тоже писал в кубе одном что проснувшись не помнил что к чему ))
попробуй кшласс создать или через делегат
 
а по чему при try catch падает, что даже оповещение ошибки не выдаёт ???
 
на чём вообще тестишь ??? может твой ящик не может обработь 50000000 твоих строк и ему просто нах памяти не хватает , ну всмысле net козявит
 
ты пишишь про красивый код тут, читабельность и сейчас пишишь что это у тебя в одном кубе, я раньше тоже писал в кубе одном что проснувшись не помнил что к чему ))
попробуй кшласс создать или через делегат
Это чисто тест работы многопоточности с каждой вкладкой в одном инстансе был, а так пока ещё не разворачивал многопоточность в зенке с одним инстансом. Ну а классы можно использовать в зенке конечно, но там так неудобно работать в них, что все желание пропадает. А вот делегаты ещё можно применять.
а по чему при try catch падает, что даже оповещение ошибки не выдаёт ???
Так кубик из себя автоматически представляет уже обертку в try catch, но когда создается новый поток в нем, то try catch на него уже не действует, надо его вручную в другом потоке прописывать.
 
Это чисто тест работы многопоточности с каждой вкладкой в одном инстансе был, а так пока ещё не разворачивал многопоточность в зенке с одним инстансом. Ну а классы можно использовать в зенке конечно, но там так неудобно работать в них, что все желание пропадает. А вот делегаты ещё можно применять.

Так кубик из себя автоматически представляет уже обертку в try catch, но когда создается новый поток в нем, то try catch на него уже не действует, надо его вручную в другом потоке прописывать.
да брось. всмысле при создании потока try catch не работает. ты ничего не путаешь
 
да брось. всмысле при создании потока try catch не работает. ты ничего не путаешь
Можешь сам протестить:
Код:
Развернуть Свернуть Копировать
try
{
for (byte p = 0; p < 3; p++)
{
Thread thread = new Thread(new ThreadStart( () =>
{
    string lala = "rtry";
    int k = 5 + Convert.ToInt32(lala);
}
));
thread.Start();
}
}
catch {}
 
а чё пробывать. ты хоть в исключение оповещение поставь
 
Можешь сам протестить:
Код:
Развернуть Свернуть Копировать
try
{
for (byte p = 0; p < 3; p++)
{
Thread thread = new Thread(new ThreadStart( () =>
{
    string lala = "rtry";
    int k = 5 + Convert.ToInt32(lala);
}
));
thread.Start();
}
}
catch {}
И как этот код должен работать ???????
Если вам надо отловить ошибку в потоке, так и трай катч в нем вешайте.
 
И как этот код должен работать ???????
Если вам надо отловить ошибку в потоке, так и трай катч в нем вешайте.
так я об этом и говорю, что внешний try catch не действует на новый созданный в нем поток и нужно внутри создавать ещё try catch
а чё пробывать. ты хоть в исключение оповещение поставь
там дописать-то остается project.SendInfoToLog("error", true);
 
так я об этом и говорю, что внешний try catch не действует на новый созданный в нем поток и нужно внутри создавать ещё try catch

там дописать-то остается project.SendInfoToLog("error", true);
А он и НЕ ДОЛЖЕН на него действовать !!!!!!

Возьмите почитайте книжки по .NET
 
у тебя catch нахдотсяся вообще не в теме, он должен находиться внутри где ты поток создаёшь
 
А он и НЕ ДОЛЖЕН на него действовать !!!!!!
так все правильно, так и должно быть
у тебя catch нахдотсяся вообще не в теме, он должен находиться внутри где ты поток создаёшь
так я об этом и писал ранее:
Так кубик из себя автоматически представляет уже обертку в try catch, но когда создается новый поток в нем, то try catch на него уже не действует, надо его вручную в другом потоке прописывать.
P.S. просто все сводится к тому, что кубик в зенке представляет из себя обертку в try catch
 
  1. Thread thread = new Thread(new ThreadStart( () =>
  2. {
  3. string lala = "rtry";
  4. int k = 5 + Convert.ToInt32(lala);
  5. }
  6. ));
  7. thread.Start();
чёт не догоняю. вот без всего прямой метод, но он ведь уже вроде не правильный
 
  1. Thread thread = new Thread(new ThreadStart( () =>
  2. {
  3. string lala = "rtry";
  4. int k = 5 + Convert.ToInt32(lala);
  5. }
  6. ));
  7. thread.Start();
чёт не догоняю. вот без всего прямой метод, но он ведь уже вроде не правильный
да, потому что там строка 4 не обернута в try catch, правильный вариант будет такой:

Код:
Развернуть Свернуть Копировать
for (byte p = 0; p < 3; p++)
{
Thread thread = new Thread(new ThreadStart( () =>
{
    string lala = "rtry";
    try
    {
           int k = 5 + Convert.ToInt32(lala);
    }
    catch { project.sendinfotolog("ошибка в потоке", true);}
}
));
thread.Start();
}
 
чёт ты какой то трактор изобретаешь вместо велосипеда, только понять не могу что вообще изобретаешь
 
чёт ты какой то трактор изобретаешь вместо велосипеда, только понять не могу что вообще изобретаешь
Так это только демонстрационный пример для того, чтобы показать, что кубик в c# - обернутый в try catch код и за счет этого его скорость работы ниже кода, который не обернут в try catch и благодаря этому проект мейкер не падает от использования кубиков (правда таки полностью это не удастся доказать, но частично показал). В реальности я бы использовал для такого случая либо parallel.for, либо пул потоков (в зависимости от того, какая задача стоит), ну или сами потоки для особо трудоемких и долгих задач.
 
Так это только демонстрационный пример для того, чтобы показать, что кубик в c# - обернутый в try catch код и за счет этого его скорость работы ниже кода, который не обернут в try catch и благодаря этому проект мейкер не падает от использования кубиков (правда таки полностью это не удастся доказать, но частично показал). В реальности я бы использовал для такого случая либо parallel.for, либо пул потоков (в зависимости от того, какая задача стоит), ну или сами потоки для особо трудоемких и долгих задач.
прекращай об этом. я в 3000 потоков в РМ тестил свой код и он работает на ура и так же в зенке
 
  • Оценить
Реакции: Adigen
Так это только демонстрационный пример для того, чтобы показать, что кубик в c# - обернутый в try catch код и за счет этого его скорость работы ниже кода, который не обернут в try catch и благодаря этому проект мейкер не падает от использования кубиков (правда таки полностью это не удастся доказать, но частично показал). В реальности я бы использовал для такого случая либо parallel.for, либо пул потоков (в зависимости от того, какая задача стоит), ну или сами потоки для особо трудоемких и долгих задач.
В зенке все кубики обернуты в try catch, выход по красной ветке это catch и есть.
Скорость работы ВНУТРИ try catch АБСОЛЮТНО такая-же как без него.

У меня стойкое впечатление, что вы вообще не понимаете процессов о которых расуждаете.
 
Последнее редактирование:
  • Оценить
Реакции: Moadip и ssXXXss
прекращай об этом. я в 3000 потоков в РМ тестил свой код и он работает на ура и так же в зенке
скомпилируй код из сообщения №22 в код в консольном приложении в VS и сравни, ну или можешь воспользоваться уже приложенным мною консольным приложением
В зенке все кубики обернуты в try catch, выход по красной ветке это catch и есть.
Скорость работы ВНУТРИ try catch АБСОЛЮТНО такая-же как без него.
У меня стойкое впечатление что вы вообще не понимаете процессов, о которых расуждаете.
внутри try такая же, но когда дело доходит до перехода к самому catch, то скорость замедляется, поэтому писать код в кубиках далеко не самая лучшая идея
 
скорость разница в часах ??? мингут ??? или хотя бы секун ??? ты заморочился на милисекунды ????
 
говори прямо тему что тебе так реально надо обработать ??
 
скорость разница в часах ??? мингут ??? или хотя бы секун ??? ты заморочился на милисекунды ????
да, я заморочился на миллисекунды)
говори прямо тему что тебе так реально так обработь ??
нету пока такой, но однозначно появится
3 раза выдало в логе ошибку в потоке, правда в коде отправки лога регистр надо поменять
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)