Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Резюме для программиста

17.10.21 05:04
Re: Резюме для программиста
 
uscheswoi_82 старожил
в ответ alex445 16.10.21 08:02, Последний раз изменено 17.10.21 07:38 (uscheswoi_82)
Если вы такой умный, то как вы можете до сих пор вестись на этот троллинг? ))

Я с айти ушёл, потому-что там выпендриваются типа мурр, и друг другу хотят показать свои знания. Если не умеешь то начинают всякое клеймо ставить, типа на неспособность в программирование, только погрубее. Допустим этот программер - https://yvision.kz/u/Hes говорил мне, что я не умею программировать на net, а у самого там много дизлайков. Со своим LINQ он мне весь плешь проел см. https://yvision.kz/post/429471 и https://yvision.kz/post/435356. Только из-за него и учил этот LINQ, провёл исследования, LINQ немного медленно работает. исследование простые - в начале до LINQ и foreach ставите DateTime Now, в конце LINQ и foreach ставите опять DateTime Now, а потом сравниваете 2 даты до и после, у меня на простые LINQ уходит где-то примерно 4 сек., а если сделать сложные LINQ и очень много записей, особенно на сервере - то всё замёрзнет напрочь и будет программа или сервер еле еле шевелиться, в Германии распространён тонкий клиент-сервер (так немцы экономят денюжки), покупают один сервер, покупают для сервера Client Access License, покупают 10-100 тонких клиентов, потом настраивают, а пользователь включает тонкий клиент, который подключается к Windows Server через сеть или Wi-Fi, если там будут сидеть одновременно ну скажем 20 пользователей, и будут выполняться тяжёлые и сложные LINQ, весь сервер просто замёрзнет, из-за того что будет много съедаться памяти см.:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LINQTest
{
    public partial class Form1 : Form
    {
        private DateTime tm1; 
        public Form1()
        {
         //   tm1 = DateTime.Now;
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            const int MAX_RECORDS = 6000;
            String[] firstnames = new String[] { "Ольга", "Наталья", "Марина", "Александра", "Ирина", "Екатерина", "Сабина", "Элеонора", "Елезавета" };
            String[] lastnames = new String[] {"Попова", "Шевченко", "Найденко", "Сидорова", "Еремеева", "Шабанова", "Иванова", "Ким", "Пушкина", 
                                               "Лысенко", "Квашенко", "Зайцева", "Краскова", "Даренко", "Абрамушина", "Березовская", "Касымова", "Чечмарёва", 
                                               "Надымова", "Кокина", "Кабаева", "Лебедева", "Соколова", "Кузнецова", "Новикова", "Морозова", "Дроздова", "Дудь", 
                                               "Порхоменко", "Надымова", "Викулова", "Здорова", "Краскова", "Гудкова", "Грудинина", "Конь", "Шишков", "Рыжкова", 
                                               "Жукова", "Дмитриев", "Порхоменко", "Мухина"};
            String[] stations = new String[] { "Онкология", "Пульмунология", "Гастрэнторология", "Травматология", ""};
            Person[] persons = new Person[MAX_RECORDS];
            Hospital[] hospital = new Hospital[MAX_RECORDS];

            Random rnd = new Random();
            Random rnd2 = new Random();
            Random rnd3 = new Random();
            Random rnd4 = new Random();
            Random rnd5 = new Random();
            Random rnd6 = new Random();

            for (int j = 0; j < MAX_RECORDS; j++)
            {
                persons[j] = new Person();
                persons[j].personID = j;
                persons[j].FirstName = firstnames[rnd.Next(0, firstnames.Length)];
                persons[j].LastName = lastnames[rnd2.Next(0, lastnames.Length)];
                persons[j].Birthday = new DateTime(rnd3.Next(1920, 1980), rnd3.Next(1, 12), rnd3.Next(1, 20));
            }

            for (int j2 = 0; j2 < MAX_RECORDS; j2++)
            {
                hospital[j2] = new Hospital();
                hospital[j2].PersonID = rnd4.Next(0, MAX_RECORDS);
                int day = rnd5.Next(1, 20);
                int month = rnd5.Next(1, 8);
                hospital[j2]._From = new DateTime(2018, month, day);
                hospital[j2]._To= new DateTime(2018, month+rnd5.Next(1, 4), day+5);
                hospital[j2].Station = stations[rnd6.Next(0, stations.Length)];
            }

            tm1 = DateTime.Now; // засекаем отсюда время

            var results = from p in persons
                          from h in hospital
                          where p.personID == h.PersonID
                          select new { p.FirstName, p.LastName, p.Birthday, h.Station, h._From, h._To };

            this.dataGridView1.DataSource = results.ToList();

            this.txtCount.Text = MAX_RECORDS.ToString();
            TimeSpan ts= DateTime.Now - tm1; // вычисляем время
            this.txtTime.Text = ts.Seconds.ToString() + " сек.";
            /*foreach (var r in results)
            {
                //this.listBox1.Items.Add(r.FirstName + " " + r.LastName + " " + r.Birthday + " "+ r._From + " " + r._To);
            }*/
        }
    }
}


Вот результат 4 сек, всего 6 тыщ записей:

https://i.ibb.co/5YRjq4r/1-min.jpg


Этот код я делал в 2019 или 2020 году, сейчас посмотрел и вроде заметил ошибку, я тогда только начинал заниматься LINQ.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
 

Перейти на