|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 7:34 am
Генератор на случайни числа
| Автор |
Съобщение |
|
perlsite
Ранг: Ориентиран
Регистриран на: Пон Апр 17, 2006 1:44 pm Мнения: 291
|
 Re: Генератор на случайни числа
Не съм ползвал C#, но все си мисля, че ако файловият указател FileStream fs и BinaryWriter bw са член променливи на класът Form1, то докато не бъде унищожен обекта инстанциран от Form1 няма да има причина тези променливи да бъдат също унищожени и съответните им хендлъри затворени. Предполагам, че в datareceived хендлъра има начин да достъпваш/споделяш член промеливите на обекта инстанциран от Form1.
Просто ми се струва, че в datareceived се вика много-много често и този овърхед с отварянето на потоци е причината за CPU usage.
|
| Пет Мар 01, 2013 1:24 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Генератор на случайни числа
Незнам, ама процеса заема 60-70 %, ЦПУ е на 100% натоварено, а компа си работи нормално. Май измерването ще да е грешно нещо. Освен това, продължва да яде памет, гледам 55МБ глътнало за половин час, файла е 5 МБ към момента... А иначе fs i bw ги унищожавам (уж) след всяко използване.... не мога да си обясня какво става с тези... вече са 60 МБ докато пиша само.... Абе на есен ще взема да запиша един C# курс в Телерик.... 
|
| Пет Мар 01, 2013 2:13 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Генератор на случайни числа
Брей, вкарах го в пътя.... Сега отнема само 10-15% на процесора, използваната памет - константно около 5 МБ. Явно са тегави тея файлови операции, не си играят писачите....  Сега остава да чакаме 2-3 седмици да се съберат резултати  @tgi: качил съм ти към 70 000 000 чисълца.... някой от файловете са с нечетен размер, явно им няма младшата част на последното число....
|
| Пет Мар 01, 2013 7:36 pm |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2277
|
 Re: Генератор на случайни числа
Каква е скоростта на rs-а ?
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!
|
| Пет Мар 01, 2013 8:40 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Генератор на случайни числа
Ами добре, днес бях навън - преди да изляза почнах да го правя (списък събития -> спектър), ама ще отиде още час може би та утре-вдруги ден белким имам нещо за покзване. Последния байт да го игнорираме ще ни е последната грижа  .
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Пет Мар 01, 2013 9:53 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Генератор на случайни числа
115200, обаче вървят по 2 байта през 1 - 1.2 ms, около 2 KB/sec..
|
| Пет Мар 01, 2013 9:59 pm |
|
 |
|
perlsite
Ранг: Ориентиран
Регистриран на: Пон Апр 17, 2006 1:44 pm Мнения: 291
|
 Re: Генератор на случайни числа
По-скоро си представях нещо, като това отдолу, макар че ми е много криво да гледам използването на ReadByte вместо ReadTo, но нямам възможност да тествам  Все пак ми е интересно дали ще се смъкнат % още   |  |  |  | Код: namespace WindowsFormsApplication1 { public partial class Form1 : Form { long x = 0, y, btn2 = 0; byte[] buffer = new byte[200000];
static FileStream fs = new FileStream("e:\\rdg99.data", FileMode.Append, FileAccess.Write); BinaryWriter bw = new BinaryWriter(fs); public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { serialPort1.Open(); x = 0; y = 0; btn2 = 0; MessageBox.Show("COM PORT Opened..."); }
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { int data_to_read;
data_to_read = serialPort1.BytesToRead;
x += data_to_read;
while (data_to_read) { if (y < 200000) { buffer[y++] = (byte)serialPort1.ReadByte(); data_to_read--; } else { bw.Write(buffer, 0, y); y = 0; } }
if ((x >= 2000000000) || (btn2 == 1)) { if (y > 0) { bw.Write(buffer, 0, y); y = 0; } bw.Close(); fs.Close(); serialPort1.Close(); MessageBox.Show("File Writed..."); } }
private void button2_Click(object sender, EventArgs e) { btn2 = 1; } } } |  |  |  |  |
Последна промяна perlsite на Пон Мар 04, 2013 1:19 am, променена общо 2 пъти
|
| Пет Мар 01, 2013 10:23 pm |
|
 |
|
perlsite
Ранг: Ориентиран
Регистриран на: Пон Апр 17, 2006 1:44 pm Мнения: 291
|
 Re: Генератор на случайни числа
При буфер от 200000, то значи ще имаш една файлова операция на всеки 100 сек. Би трябвало натоварването да е пренебрежимо малко, както и потенциалните загубени данни, ако крашне приложението лошо без да запише 
|
| Пет Мар 01, 2013 10:32 pm |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2277
|
 Re: Генератор на случайни числа
При тая скорост не трябва да можеш да различиш дали приложението работи или не, т.е. натоварването е пренебрежимо малко - на съвременен компютър не трябва да е повече от малка част от процента. Ако е повече има нещо, което не е наред.
п.п. това MessageBox.Show("File Writed..."); трябва да е нещо от сорта MessageBox.Show("File is written...");
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!
|
| Пет Мар 01, 2013 10:44 pm |
|
 |
|
perlsite
Ранг: Ориентиран
Регистриран на: Пон Апр 17, 2006 1:44 pm Мнения: 291
|
 Re: Генератор на случайни числа
Да, но в момента файловите операциите са 2к/секунда и то въпросът не е до самите операции а до 2-те хиляди API извиквания 
|
| Пет Мар 01, 2013 11:03 pm |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2277
|
 Re: Генератор на случайни числа
Така де, The behavior is by design 
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!
|
| Пет Мар 01, 2013 11:07 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Генератор на случайни числа
Ми така е....  В понеделник ще тествам новия дизайн. А м/у другото, аз не познавам API-то, питах колеги дето дращят на шарпа, ама и те не ги знаеха тези... та ми дадоха линк към MSDN и от там попреписах, от там още тръгва на криво 
|
| Пет Мар 01, 2013 11:42 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Генератор на случайни числа
Ей ги всички дотук - статистиката е ниска но пикове на всички кратни на 256 места се виждат ясно, не е баш случайна работата.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Пон Мар 04, 2013 12:30 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Генератор на случайни числа
Ами не, не смъкна, запази си се в рамките на 10-15%.....
|
| Пон Мар 04, 2013 12:46 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 Re: Генератор на случайни числа
Мдамм, Демек ако може да обобщим - не всичко дето хвърчи е злато, или не всичко което Мохамед носи до планината се яде  Аз още в началото изразих някои съмнения по повод случайността на генератора като реализация:) Но пак да повторя, в зависимост от приложението, и тази реализация може да се преглътне. Ако търсиш наистина случайни числови поредици (значи се занимаваш с крипрография или ти е академичен интереса) трябва да промониш схемното решение 
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Пон Мар 04, 2013 1:41 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 4 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|