Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Скорость процессора... и NET Добавлено: 10.03.07 05:52  

Автор вопроса:  ANDREY Z5Z | Web-сайт: save-games.info
У меня 2 вопроса:
Например есть программа - суть в том что она может работать хоть полчаса, а использовать процессор только на 50%. Если кто сталкивался с этим, расскажите какими способами можно "загрузить" процессор и уменьшить время выполнения программы.
Второй вопрос почти ламерский :) Можно ли в NET сделать только часть формы прозрачной, или допустим сделать в ней прозрачную дырку?..

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #1 Добавлено: 10.03.07 08:30
1. в общем случае никак. подробностей.
2. можно. вопрос стар как мир, поиск рулит.

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 10.03.07 21:51
1. Можно попробовать поставить процессу realtime-приоритет

Ответить

Номер ответа: 3
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #3 Добавлено: 10.03.07 23:28
А где мой мессаг? (вообщем-то писал то же, что и Sharp) Можно просто поставить приоритет повыше, а для таких целей использовать С или ASM, притом минимизировать вызовы процедур и использовать макроподстановки

Ответить

Номер ответа: 4
Автор ответа:
 ANDREY Z5Z



Вопросов: 38
Ответов: 125
 Web-сайт: save-games.info
 Профиль | | #4
Добавлено: 11.03.07 02:14
Понятно... так я и предполагал :)
Ну а многопоточность ничем не поможет?

Ответить

Номер ответа: 5
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #5
Добавлено: 11.03.07 21:33
Вообще-то я с таким сталкивался только при работе с сиквелом - он распределяет ресурсы машины как бы "для всех поровну" и резервирует их, не зная, что я тут один и никому они больше не понадобятся. Очень раздражает.
А так чтобы в цикле проц работал на 50% так это наверное мнопроцессорность виновата.
.............
вот написал вот такой вот код:

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


namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //Infinite();

            Thread th1 = new Thread(Infinite);
            th1.Start();
            Thread th2 = new Thread(Infinite);
            th2.Start();

            th1.Join();
        }
        private void Infinite()
        {
            int a, b, c;
            a = b = c = 1;
            while (true)
            {
                c = a + b;
            }
        }
    }
}


у меня на Core2Duo с раскомментированной строкой жрёт только 50% от общей мощности проца, а если закомментить (т.е. работают два потока), то весь стольник.

Ответить

Номер ответа: 6
Автор ответа:
 ANDREY Z5Z



Вопросов: 38
Ответов: 125
 Web-сайт: save-games.info
 Профиль | | #6
Добавлено: 11.03.07 23:57
Да, правда один вариант загрузил проц на 100 а другой на 50%... Но реально ускорить работу приложения... как ее ускорить если данные должны попадать в переменные попорядку? А то если запустить одновременно одну и ту же задачу, то там из переменных какая-то куча должна получится пусть даже и проц на 100% задачами загрузился... Потоками наверно хорошо делать что-то в фоновом режиме, чтобы интерфейс был свободен...
Но если подумать, реально интересно сделать например: пусть первый поток заполняет четные индексы массива, а другой нечетные - должно же быстрее заполниться??

Ответить

Номер ответа: 7
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #7
Добавлено: 12.03.07 00:19
я думаю, что всё от конкретной задачи зависит.
логично было бы предоставлять данные в виде потока данных (к примеру, файловый поток уже сам по себе готов к такой обработке, два раза один блок точно не прочитаешь) и выгружать их тоже в виде потока данных (здесь сложнее - нужно соблюдать порядок, в каком взяли, в таком и положили - надо скармливать работу по синхронизации отдельному потоку, чтобы не тормозить рабочие). а если всё в массиве лежит и выгружается куда-то в такой же массив, то наверное должно получиться и с чередованием индексов.

Ответить

Номер ответа: 8
Автор ответа:
 Stars



Вопросов: 41
Ответов: 239
 Профиль | | #8 Добавлено: 18.03.07 16:11
Есть предположение, что надо использовать много поточность. Тоесть на проц у тебя всего 1 поток который грузит на 50% а если допустим сделать 2 потока то я предпологаю что будет на 100% использовать ресурсы. На форуме гдето вроде разбиралось как сделать много поточность!

Ответить

Номер ответа: 9
Автор ответа:
 Stars



Вопросов: 41
Ответов: 239
 Профиль | | #9 Добавлено: 18.03.07 16:13
А насчёт дырки прозрачной почитай на форуме гдето было про прозрачность определённого цвета! Тоесть можешь на форме нарисовать любой рисунок а потом всё что этим цветом можно сделать прозрачным

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам