Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > С#

С# Средство разработки на платформе .Net

Ответ
 
Опции темы
Старый 17.03.2011, 01:08   #1
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
List and alias.

Мой первый пост по делу, за долгое время. =)

Перебрался с бейсика на C#. Пишу по малости, скоро игру выложу.

Конкретно вопрос:
Когда писал на бейсике, и требовалось создать множество неких объектов, постоянно изменяющее свой размер, объявлял Type и был доволен.
На C# в аналогичных случаях употребляю List<>.
Я конечно не пишу программу перехвата управления спутниками ВВС США в реальном времени, но интересно, сколько и чего жрет List по сравнению с массивами?
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 02:02   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: List and alias.

Дык сделай замеры, есть хеш таблицы (Dictionary) есть такие списки (ListArray) и т.п.
Сделай замеры, миллисекунды получай: System.Environment.TickCount
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
FireOwl (17.03.2011)
Старый 17.03.2011, 02:06   #3
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: List and alias.

ну вообщемто переживать по поводу памяти в наше время не особо стоит волноватся(ну поянтное дело я не о том чтобы создать 100500 ненужных классов и оставить их, про такую вещь как размер списков и словарей). если особо интересно полистай msdn. также во время исполнентя можешь сотановить и посмотреть Capacity - это размер памяти выделеный для листа листа. Также, если зарание известен размер листа, то лучше иницализировать его спараметром Capacity - это ускорит добавление елементов в будующем(пока эти елементы не вылезут за ганицу) )
ПО поводу скорости доступа к елементам, то тут да, масивы работаеют на порядок быстрее.
Вот кстати пример по поводу выделяемой памяти-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mime;
using System.Text;

namespace ListTest
{
    class Program
    {
        static void Main(string[] args)
        {
            List<object> objects=new List<object>();
            objects.Add(new object());
            int capacity=objects.Capacity;
            for (int i = 0; i < 15; i++)
            {
                capacity = objects.Capacity;
                int size = objects.Count;
                Console.WriteLine("ExistElemets={0} Capacity={1}",size,capacity);
                for (int j = 0; j < capacity-size+1; j++)
                {
                    objects.Add(new object());
                    
                }
            }
            Console.ReadKey();
        }
    }
}
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
FireOwl (17.03.2011)
Старый 17.03.2011, 03:42   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: List and alias.

Dream, тут скорее вопрос скорости а не памяти.
Например если это сервер, то ему нужно быстро списками орудовать..
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 04:21   #5
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: List and alias.

Мне все важно! Спасибо.

З.Ы. Свойство Capacity здорово к месту пришлось. Как-то я его упускал из виду.
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 04:52   #6
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: List and alias.

Сообщение от MoKa Посмотреть сообщение
Dream, тут скорее вопрос скорости а не памяти.
Например если это сервер, то ему нужно быстро списками орудовать..
Ты откуда знаешь в чём там вопрос? К чему твой комментарий?
В своем посте я указал как о памяти так и скорости доступа
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 14:13   #7
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: List and alias.

Сообщение от Dream Посмотреть сообщение
Ты откуда знаешь в чём там вопрос? К чему твой комментарий?
В своем посте я указал как о памяти так и скорости доступа
Это было в основном к этому:
ну вообщемто переживать по поводу памяти в наше время не особо стоит волноватся
Скорость перебора элементов, зависит от реализации самих списков. Списки есть разные и для разных задач, поэтому и был вопрос, что лучше или быстрее использовать..
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 14:33   #8
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: List and alias.

Перечитай пожалуйста первый пост ещё раз.
Или ты у нас тоже "между строк" читаешь?
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 14:59   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: List and alias.

Сообщение от Dream Посмотреть сообщение
Перечитай пожалуйста первый пост ещё раз.
Или ты у нас тоже "между строк" читаешь?
Да не прочитал всё, ты сказал что массив будет быстрее и т.п.
Только дело стоит в том что списки есть разные, иногда нужен доступ по индексу, а иногда по int номеру, которое назначается другим механизмом и в списке не последовательно и т.п. различия списков.

Тебя что-то задевает тут?
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 15:25   #10
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: List and alias.

Ты прикидываешься? Как цель использование влияет на скорость?
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 15:37   #11
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: List and alias.

Сообщение от Dream Посмотреть сообщение
Ты прикидываешься? Как цель использование влияет на скорость?
Дык, задачи определяют инструменты. Нету универсального варианта, и даже если он будет, то он будет в разных задачах медленнее чем специализированные списки.
Таким образом задача определяет инструментарий, исходя из которых зависит скорость, т.к. они различаются.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:02.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com