Отговори на тема  [ 80 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5, 6  Следваща
Генератор на случайни числа 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Генератор на случайни числа
Ми май най-лесно ще е с CR-и ама и със запетайка бива, както ти е най-лесно.

Може и сурово/двоично, по два байта на резултат - понеже е бая обем де.

Но по пътя на най-малкото съпротивление давай.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Нед Фев 24, 2013 12:46 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
Така... а някой да знае, защо C# не иска да обработи 10 000 числа (20 000 байта) по - бързо от около 35 секунди, независимо как ги подавам (през RS на 115200).... даже нощес на 9-я мегабайт приложението е генерирало 'Out of memory'... ?


Сря Фев 27, 2013 11:52 am
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение Re: Генератор на случайни числа
За такива неща недей да ползваш C#/Java


Сря Фев 27, 2013 12:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
Реконструктор написа:
За такива неща недей да ползваш C#/Java


Абе то ясно, ама реших да направя и един челен сблъсък със C#, че не го бях виждал що за животно е до сега. Стана ми интересно, че са се сетили, че все пак трябва да има тип 'byte', и разни други неща.... Ама защо пък примерно, не мога да извикам: label1.Text = Convert.ToString(x); от където си искам... Абе нещо програмирането не е каквото беше...


Сря Фев 27, 2013 1:11 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение Re: Генератор на случайни числа
GUI се пипа само от нишката му, и това не само там така, споко. :)


Сря Фев 27, 2013 4:45 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение Re: Генератор на случайни числа
Явно нещо си окензал кода. А и по принцип големи количества данни е добре да ги пишеш във файл.
Наскоро правих wrapper на objdump.exe, дъмповете се получаваха около 200МБ (текст), а не съм имал никакви проблеми с недостиг на памет.


Сря Фев 27, 2013 5:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
Явно да, ама както казах, C# пипах за първи път :)
Добре де, някой не може ли да драсне едно приложение, дето чете байт от RS-a и го добавя във файл.
Като станат 2 000 000 000 байта - затваря файла и вади един месидж бокс. Ако не го мързи, може примерно на всеки 2000 байта да се инкрементира един брояч.
Да не откривам аз топлата вода....

Иначе сега имам един файл с над 4 500 000 числа, tgi ако иска да пробва първо него.....


Сря Фев 27, 2013 7:01 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
Колкото до кода, ей това сътворих:

Код:
namespace WindowsFormsApplication1
{
   
    public partial class Form1 : Form
    {
        long x = 0;
           
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
           
            serialPort1.Open();
            x = 0;
            FileStream fs = new FileStream("e:\\rdg.data", FileMode.OpenOrCreate);
            fs.Close();
            MessageBox.Show("COM PORT Opened...");
        }

        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
                byte rs_data;

                rs_data = (byte)serialPort1.ReadByte();
   
                using (FileStream fs = new FileStream("e:\\rdg.data", FileMode.Append, FileAccess.Write))
                {
                  BinaryWriter bw = new BinaryWriter(fs);
                  bw.Write(rs_data);
                }

                x++;
               
                //label1.Text = Convert.ToString(x);
                if (x >= 20000000)
                {
                    serialPort1.Close();
                    MessageBox.Show("File Writed...");
                   
                }
           
        }
    }
}


Сря Фев 27, 2013 7:09 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Генератор на случайни числа
Ми дай го някак да приготвя и аз процедурата, тя статистиката няма да е добра
ама като направиш още ще я подобряваме. Ако искаш мога да ти отворя ftp
дупчица да го изсипеш направо на диска на моя телевизор?

[edit] Готово, пратих ти детайлите като лично съобщение [/edit]

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Сря Фев 27, 2013 7:36 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
Метнах го, данните са старши, младши.... ама то това ти е ясно.
М/у другото, трябва ли всичките данни да са генерирани наведнъж (последователно) или може да допълвам файла от време на време?


Сря Фев 27, 2013 10:45 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: Генератор на случайни числа
Като ти викне "serialport1_datareceived" не чети само един байт, ами изчети всичко, дето е в буфера. Затова ти се мота. Това е ивент все пак, и докато стигне до него системата трябва да извика един болюк други неща, да превключи няколко thread-а и прочие полюции.


Чет Фев 28, 2013 12:59 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Генератор на случайни числа
relsys написа:
Метнах го, данните са старши, младши.... ама то това ти е ясно.
М/у другото, трябва ли всичките данни да са генерирани наведнъж (последователно) или може да допълвам файла от време на време?


А, спокойно могат да бъдат и отделни файлове по отделно време. Най-добре ги и слагай така,
по-добре да няма супер големи файлове. Не е проблем да влизат в спектъра последователно.

То и трябва да си поиграя може би час докато почна да мога да ги слагам в спектри,
до два-три дни белким сколасам да го направя.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Чет Фев 28, 2013 1:06 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
sparkybg написа:
Като ти викне "serialport1_datareceived" не чети само един байт, ами изчети всичко, дето е в буфера. Затова ти се мота. Това е ивент все пак, и докато стигне до него системата трябва да извика един болюк други неща, да превключи няколко thread-а и прочие полюции.


Това го направих, сега чете нормално, т.е. всичките около 100 000 байта в минута. Накарах го и да не яде памет постоянно. Защо обаче такава елементарна задача отнема 60% на процесора?


Чет Фев 28, 2013 2:23 pm
Профил ICQ WWW
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Пон Апр 17, 2006 1:44 pm
Мнения: 291
Мнение Re: Генератор на случайни числа
Аз бих отворил файла за добавяне още при натискане на бутона, както и двоичният режим на запис, а не всеки път когато влезнеш в събитието. В допълнение бих си направил един буфер от няколко MB в който да тъпча, така че когато получа данните да мога максимално бързо да върна управлението към OS.
Когато буфера се напълни бих го флъшнал наведнъж. Един път бих проверявал в събитието за достигане на максималният размер на буфера и още веднъж, когато затвориш приложението и все още има незаписани данни.
Предполагам, че това ще помогне за % CPU.


Пет Мар 01, 2013 2:38 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
perlsite написа:
Аз бих отворил файла за добавяне още при натискане на бутона, както и двоичният режим на запис, а не всеки път когато влезнеш в събитието. В допълнение бих си направил един буфер от няколко MB в който да тъпча, така че когато получа данните да мога максимално бързо да върна управлението към OS.
Когато буфера се напълни бих го флъшнал наведнъж. Един път бих проверявал в събитието за достигане на максималният размер на буфера и още веднъж, когато затвориш приложението и все още има незаписани данни.
Предполагам, че това ще помогне за % CPU.



Естествено колега, това беше и моят подход. Обаче... оказа се, че в C# нещата не се случват точно така, или аз не знам как. Създавайки двоичния режим на запис при натискане на бутона, то той после е невидим в евента на RS-a.

Както и да е де, към момента не мисля да задълбавам в C#, ама си представям вече след 10 години какви програми ще се творят...


Пет Мар 01, 2013 11:50 am
Профил ICQ WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 80 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5, 6  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни