Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# Дивная игра мудреца Однажды Мудрец придумал игру, и показал её Царю. Царь заинтересовался игрой и пообещал вознаградить Мудреца, если он научит в неё играть. Игровое поле состояло из 30-х клеток, расположенных в 6-ти рядах по 5 клеток в каждом. Мудрец согласился научить Царя премудростям игры, если Царь даст ему столько зёрен пшеницы, сколько получится, если заполнить все клетки... https://www.cyberforum.ru/ csharp-beginners/ thread1946506.html C# Движение объекта на panel. Изменение направления при нажатии кнопки
Дело такое, есть круг, при нажатии кнопки "Старт" он начинает двигаться на право, и при этом у него цвет ЗЕЛЕНЫЙ, при нажатии "Стоп" он останавливается. Это я реализовал. Теперь мне нужно сделать так, что если я нажму на кнопку "Налево" то круг с того же места где он остановился начинает движение налево, при этом его цвет меняется на КРАСНЫЙ. ВОТ это FORM1. using System; using...
C# Messagebox.show Как вывести результат Console.WriteLine("key={0} volue={1}", i, dict); в messagebox public static Dictionary<int, string> mydict() { Dictionary<int, string> dict = new Dictionary<int, string>(); int i; for (i= 0; i < 10; i++) { string s = i.ToString(); https://www.cyberforum.ru/ csharp-beginners/ thread1946498.html C# Торт и свечи https://www.cyberforum.ru/ csharp-beginners/ thread1946497.html
Здравствуйте, есть программка, условие которой звучит следующий образом: На квадратном торте N свечей. Можно ли одним прямолинейным разрезом разделить его на две равные по площади части, одна из которых не содержала бы ни одной свечи? Свечи будем считать точками, у которых известны их целочисленные координаты Х, Y; ...; Х, Y (начало координат - в центре торта); разрез не может проходить через...
Как сделать динамический array? C#
то есть, мне нужно что то вроде такого: char array = new char; Console.WriteLine("Введите слово которое вы хотите проверить палиндромом ли оно"); то есть что бы длина массива была в зависимости от слово которого введет user вот как выглядит мой код, но теперь мне нужно изменить его так как я написала выше public void CheckPolindrome() { char array = new char; ...
C# Массивы задач В общем, необходимо распараллелить генерацию и обработку массива данных. Почитал про задачи, потоки, TPL, вроде бы проникся, начал писать непосредственно код, и столкнулся с проблемами (код привожу обобщенный). List<Point> startValues; List<Task> taskList; int N; void Init()//инициализирую { startValues = new List<Point>(); ... https://www.cyberforum.ru/ csharp-beginners/ thread1946410.html
C# Как определить какой элемент JavaScript запускается на странице при клике и запустить его? https://www.cyberforum.ru/ csharp-beginners/ thread1946401.html
Код страницы состоит сверху из кучи javascript такого типа <script type="text/javascript" src="/gen/js/ru/_core/c.account_1486726596.js"></script> Когда я навожу мышь на элемент, описываемый кодом <canvas class="town-canvas" id="town-canvas" width="1006" height="800"></canvas> название класса меняется на town-canvac-hower Когда кликаю на него, появляется в коде страницы строки, описываемые...
Часть 1. Делаем смену mac адреса на c# C#
Всем привет! Многие говорят что на шарпе поменять адреса мака просто не возможно, но господа, давайте будем честными. Изменить мак адрес сетевого адаптера, можно на шарпе, многие не понимают как это сделать, и говорят обратное. Сегодня я вам покажу как это делается, на как вы говорите г0вн0 шарпе, если вы считаете что только дельфин способен реализовать такое, то вы глубоко...
C# На каком языке писать DLL? Уважаемые знатоки С# подскажите на каком языке более оптимально сделать DLL, чтобы потом эту DLL без проблем использовать для С#WPF. Пред история Имеется XXX.dll c XXX.h (написана на Си ) , делается AAA.dll - обертка (покаместь на С++ ) для доступа к ХХХ.dll , т.е. типа такой прослойки между XXX.dll и С#WPF https://www.cyberforum.ru/ csharp-beginners/ thread1946294.html C# Найти наибольшее среднее арифметическое положительных элментов в строке Уважаемые программисты,объясните чайнику, как посчитать наибольшее среднее положительных элементов в строке и вывести его?? В моем коде выводится только строка с элементами из которых находится наибольшее среднее, а вот как вывести это среднее не понимаю:umbrage:.. Прилагаю код.. using System; using System.Collections.Generic; using System.Linq; using System.Text; https://www.cyberforum.ru/ csharp-beginners/ thread1946262.html
Как связать несколько компьютеров через сокеты? C#
IPAddress IP = IPAddress.Parse("127.0.0.1"); IPEndPoint EndP = new IPEndPoint(IP, 7777); При использовании вместо 127.0.0.1 (Или другого любого IP, через который можно связываться локально) Ip, взятого с сайта 2ip.ru выходит ошибка. Что я делаю не та
1102 / 237 / 21
Регистрация: 20.05.2016
Сообщений: 1,068
Записей в блоге: 21
29.03.2017, 18:43  [ТС] 0

Оптимизация производительности C#.NET (Алгоритм, Многопоточность, Debug, Release, .Net Core, Net Native) - C# - Ответ 10272255

29.03.2017, 18:43. Показов 4673. Ответов 19
Метки (Все метки)

Ответ

m-ch, сейчас проверим, Someone007, согласен с тем, что не везде есть Framework, но под win проблем нет (а вот .NET Core есть точно не на всей win), поэтом что бы поделится своим решение на С#.NET Core нужно переслать - 50 МБайт(.exe+библиотеки), что бы С#.NET Framework - 50 КБайт(.exe)
Если не под Win, ситуация конечно меняется.
Поправьте, если что-то упускаю.
Цитата Сообщение от Someone007 Посмотреть сообщение
И сборка .NET Core легко подключается к проектам на .NET Framework.
сможете поделится информацией?

Тестовый код:
Кликните здесь для просмотра всего текста
C#
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;
 
namespace NET_Core_netcoreapp
{
    //поиск переменных для решения уравнения x^3 + y^3 = z^3 - 1
    class Program
    {
        static TaskCompletionSource<object> source = new TaskCompletionSource<object>();
        static TaskScheduler scheduler = new CustomTaskScheduler();
 
        static long n;
        static long an;
        static long lim;
        static long[] a;
        static int threadsN = Environment.ProcessorCount; //задать количество потоков
        static List<Test> listTest = new List<Test>(100);
 
        static void Main(string[] args)
        {
                Console.WriteLine("Enter the maximum limit for variables, followed by <Enter>:\n");
                n = Convert.ToInt64(Console.ReadLine());
            
            for (int j = 0; j < 10; j++)
            {
                Stopwatch sw = Stopwatch.StartNew();
                an = n * n * n;
                a = new long[n + 1];
                lim = (long)Math.Round(Math.Pow((an - 1) / 2, 1d / 3d));
 
                for (long i = 1; i <= n; i++)
                    a[i] = i * i * i;
 
                var task = new Task[threadsN];
                for (int i = 2; i - 2 < threadsN; i++)
                {
                    int k = i;
                    task[k - 2] = Func(k);
                }
 
                Task.WaitAll(task);
                sw.Stop();
                Console.WriteLine((j + 1) + " " + sw.Elapsed.TotalSeconds);
            }
            Console.Write("\nPress any key to continue... ");
            Console.ReadKey();
        }
 
        static async Task Func(long start)
        => await Task.Run(() =>
        {
            long m = n;
            unsafe
            {
                fixed (long* a = Program.a)
                {
                    for (long x = start; x <= lim; x = x + threadsN)
                    {
                        long ax = a[x];
                        long r = an - ax - 1;
                        while (a[m] > r) m--;
                        long z = (long)(x * 1.2599);
 
                        for (long y = x; y <= m; y++)
                        {
                            long z3 = ax + a[y] + 1;
 
                            for (long az = a[z]; az <= z3; z++, az = a[z])
                            {
                                if (az == z3)
                                {
                                    //Console.WriteLine(x + "   " + y + "   " + z);
                                    Test test = new Test { Prop1 = x, Prop2 = y, Prop3 = z };
                                    listTest.Add(test);
                                }
                            }
                        }
                    }
                }
            }
        }).ConfigureScheduler(scheduler);
    }
 
    class Test
    {
        public double Prop1 { get; set; }
        public long Prop2 { get; set; }
        public long Prop3 { get; set; }
    }
 
    public struct CustomTaskAwaitable
    {
        CustomTaskAwaiter awaitable;
 
        public CustomTaskAwaitable(Task task, TaskScheduler scheduler)
        {
            awaitable = new CustomTaskAwaiter(task, scheduler);
        }
 
        public CustomTaskAwaiter GetAwaiter() { return awaitable; }
 
        public struct CustomTaskAwaiter : INotifyCompletion
        {
            Task task;
            TaskScheduler scheduler;
 
            public CustomTaskAwaiter(Task task, TaskScheduler scheduler)
            {
                this.task = task;
                this.scheduler = scheduler;
            }
 
            public void OnCompleted(Action continuation)
            {
                task.ContinueWith(x => continuation(), scheduler);
            }
 
            public bool IsCompleted { get { return task.IsCompleted; } }
            public void GetResult() { }
        }
    }
 
    public static class TaskExtension
    {
        public static CustomTaskAwaitable ConfigureScheduler(this Task task, TaskScheduler scheduler)
        {
            return new CustomTaskAwaitable(task, scheduler);
        }
    }
 
    public class CustomTaskScheduler : TaskScheduler
    {
        protected override IEnumerable<Task> GetScheduledTasks() { yield break; }
        protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued) { return false; }
        protected override void QueueTask(Task task)
        {
            TryExecuteTask(task);
        }
    }
}


Добавлено через 5 минут
z = (long)(x * 1.2599) выигрывает:
Кликните здесь для просмотра всего текста
z=1 
100000 
12,1110943
21,9450654
31,9511239
42,0257331
51,9344945
61,9745772
71,9662312
82,0138797
91,9941009
101,954841
z=x 
100000 
11,7556538
21,6321776
31,6598229
41,6571433
51,6293431
61,6631514
71,6663989
81,681839
91,6532973
101,6936577
z = (long)(x * 1.2599) 
100000 
11,5326302
21,3855489
31,3822823
41,3915494
51,3806963
61,4359642
71,3672701
81,4751226
91,3672852
101,4179782


Добавлено через 30 минут
С#.NET Framework догоняет С#.NET Core, разница всего в 5%
Была поднята мин. граница массива в переборе, видимо С#.NET Core быстрее обрабатывает большие массивы.
Кликните здесь для просмотра всего текста
100000.NET Core.NET Framework%
11,54437771,5849673103%
21,46439631,5704608107%
31,43504361,5595892109%
41,49021281,5637244105%
51,52234021,473899897%
61,51596951,565652103%
71,52009861,506414399%
81,49759371,5807666106%
91,42715211,5844598111%
101,45244651,5524314107%
ср.знач1,48696311,55423656105%


Вернуться к обсуждению:
Оптимизация производительности C#.NET (Алгоритм, Многопоточность, Debug, Release, .Net Core, Net Native) C#
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2017, 18:43
Готовые ответы и решения:

Объясните на пальцах совместимость библиотек в .Net Core, .Net Framework, .Net Standart
Изучаю .Net. Хочу написать некое серверное приложение (думаю что учеба лучше на реальном примере,...

Разница между ASP.NET Core 2, ASP.NET Core MVC, ASP.NET MVC 5 и ASP.NET WEBAPI 2
Здравствуйте. Я в бекенд разработке полный ноль. В чем разница между вышеперечисленными...

Сравнение производительности MariaDb и PostgreSql на .NET CORE
Решил присоединиться к кроссплатформенной разработке на .NET CORE и переписать одно из API на...

ASP.NET Core. Старт - что нужно знать, чтобы стать ASP.NET Core разработчиком?
Попалось хор краткое обзорное видео 2016 года с таким названием - Что нужно знать, чтобы стать...

19
29.03.2017, 18:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2017, 18:43
Помогаю со студенческими работами здесь

Библиотека NETSquirrel для .NET и .NET Core - формат вывода индексаторов
Предположим, что мы выводим через AutoPrintLine все поля, свойства и индексаторы экземпляра...

Можно ли использовать сборку из .NET Core в обычном ASP .NET проекте ?
Microsoft.Extensions.Logging очень удобная штука, в обычном .NET её никак нельзя задействовать ?...

Можно ли использовать библиотеки написанные на .net Core для .net FW
Можно ли подключить библиотеку написанную на .net Core к WinForm приложению написанному на .net FW?...

Как подключить к ConsoleApp(.Net Core) библиотеку (.Net Standart)
Привет товарищи!) Решил чутка по изучать нововведения(ну лично для меня ConsoleApp(.Net Core) и...

Библиотека NETSquirrel для .NET и .NET Core - решение задач
Тема для решения задач с применением NETSquirrel. Просьба вопросы и замечания писать здесь.

ASP.NET .NET Core Web Api -- почему параметры всегда null?
Что я делаю не так? using Microsoft.AspNetCore.Mvc; namespace WebApiServer.Controllers { ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru