O problema do ClientDataSet é que a perfomance dele cai drasticamente a medida que o volume de dados aumenta, principalmente nas operações de Edição.
20 por segundo é tranquilo, desde que a quantidade total de registros no cds seja baixa, mais sem sombra de dúvida, usar um TList é muito mais rápido, e nesse caso vc pode utilizar um TListView para listar as informações. TQueue ou TStack como foi citado, são para faciliar o tratamento de fila e pilha, e não trarão nenhum ganho de performance em relação ao TList, pois, internamente utilizam um TList ;) Recomendo a vc fazer um teste de sobrecarga bem simples utilizado ambas as opções. Vc vai constatar facilmente a diferença entre cds e TList. []s Em 31 de agosto de 2010 19:06, Marcos Abreu Ferreira < maferreira...@gmail.com> escreveu: > > > Fabricio, > > a quantidade de informações que recebo são em média 20 linhas de informação > por segundo. > > Em 31 de agosto de 2010 14:19, Fabricio Colombo < > fabricio.colombo....@gmail.com <fabricio.colombo.mva%40gmail.com>> > escreveu: > > > > Defina em valores o que seria essa quantidade de informações muito > grande. > > As vezes não vale apenas criar uma solução muito complexa pra ganhar > alguns > > milésimos de segundo. > > > > > > > > Em 31 de agosto de 2010 14:01, Rubem Rocha > > <rubem.ro...@dtmanaus.com.br <rubem.rocha%40dtmanaus.com.br>>escreveu: > > > > > > > > > > > Eu penso que a solução, além de usar TClientDataSet, teria que fazer > uso > > de > > > threads e filas, na intenção de implementar algo que em .NET chamamos > de > > > thread pool (pool de threads). > > > > > > Sds. > > > > > > De: delphi-br@yahoogrupos.com.br > > > <delphi-br%40yahoogrupos.com.br><delphi-br% > 40yahoogrupos.com.br> > > [mailto: > > > delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br><delphi-br% > 40yahoogrupos.com.br>] Em nome > > > de > > > Ricardo César Cardoso > > > Enviada em: terça-feira, 31 de agosto de 2010 12:51 > > > > > > Para: delphi-br@yahoogrupos.com.br > > > <delphi-br%40yahoogrupos.com.br><delphi-br% > 40yahoogrupos.com.br> > > > > Assunto: Re: [delphi-br] [MAF] Velocidade de processamento > > > > > > Ao invés de uma TList, poderia usar TQueue ou TStack dependendo da > > > necessidade e volume de dados. > > > > > > Agora uma pergunta de quem leu e releu e não entendeu direito: vc não > > > conseguiria usar um descendente de TStream para resolver essa sua > > > necessidade? Acho que seria até melhor do que Array ou estruturas de > fila > > > (TQueue), pilha (TStack) ou lista (TList). > > > > > > Atenciosamente, > > > Ricardo. > > > > > > 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. > > > > > > 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor > > > compreendida. > > > > > > 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! > > > > > > --- Em ter, 31/8/10, Roni Rodrigo > > > <ronirodr...@yahoo.com.br<ronirodrigo%40yahoo.com.br> > <ronirodrigo% > > 40yahoo.com.br><mailto: > > > ronirodrigo%40yahoo.com.br <ronirodrigo%2540yahoo.com.br>> > escreveu: > > > > > > De: Roni Rodrigo > > > <ronirodr...@yahoo.com.br<ronirodrigo%40yahoo.com.br><ronirodrigo% > 40yahoo.com.br > > ><mailto: > > > ronirodrigo%40yahoo.com.br <ronirodrigo%2540yahoo.com.br>> > > > > > > > > Assunto: Re: [delphi-br] [MAF] Velocidade de processamento > > > Para: delphi-br@yahoogrupos.com.br > > > <delphi-br%40yahoogrupos.com.br><delphi-br% > 40yahoogrupos.com.br > > ><mailto: > > > delphi-br%40yahoogrupos.com.br <delphi-br%2540yahoogrupos.com.br>> > > > > Data: Terça-feira, 31 de Agosto de 2010, 13:04 > > > > > > cara... o mais rápido acho que não é nem array nem cds... imagino que > > > > > > uma lista dinâmica ( TList ) seria mais rápida e fácil de manipular, > > > > > > além de ser mais estruturada.... > > > > > > mas se vc exibe as informações num grid, vc teria q sincronizar tanto a > > > > > > TList como o array, nesse caso acho que seria mais rápido manipular > > > > > > direto o cds mesmo... > > > > > > o/ > > > > > > Em 31/08/2010 12:22, Marcos Abreu Ferreira escreveu: > > > > > > > Pessoal, > > > > > > > > > > > > > > estou desenvolvendo uma aplicação onde vou recebendo as informações > por > > > > > > > socket, salvo em um ClientDataSet e disponibilizo elas em um Grid. Em > > > > > > > algumas situações a quantidade de informações é muito grande e veem > > todas > > > > > > > juntas. O campo índice do ClientDataSet é um campo posição (numérico > de > > 2 > > > > > > > posições) e o outro campo é o horário. > > > > > > > > > > > > > > Quando recebo a linha de informação, verifico se a posição 1 e a > > posição > > > > > > > anterior existem, carregar os tempos delas em variáveis e depois > > > verificar > > > > > > > se a posição recebida existe, e caso exista, somente altero o valor > do > > > > > > > horário e as diferenças entre elas, e se não estiver, crio um novo > > > > > > > registro. > > > > > > > > > > > > > > Essa verificação da posição 1 e a anterior seria mais rápida se eu > > > > > > > usasse um > > > > > > > array ou o ClientDataSet mesmo? e a gravação/alteração seria mais > > > > > > > rápida em > > > > > > > qual situação? > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > ------------------------------------ > > > > -- > > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > > > > > > > -- > Att, > > Marcos A. Ferreira > São Paulo - Brasil > +55 11 9309-3936 > +55 11 8905-9889 > > MSN: maferre...@hotmail.it <maferreira%40hotmail.it> > Google Talk: maferreira.f2 > Skype: maferreira.f2 > LinkedIn: http://www.linkedin.com/in/maferreira/ > Twitter: @effedois <http://www.twitter.com/effedois/> > Esta mensagem pode conter informação confidencial e/ou privilegiada. Se > você > não for o destinatário ou a pessoa autorizada a receber esta mensagem, não > pode usar, copiar, ou divulgar as informações nela contidas ou tomar > qualquer ação baseada nestas informações. Se você recebeu esta mensagem por > engano, por favor, avise imediatamente o remetente, respondendo o email e > em > seguida, apague-o. > Agradecemos sua cooperação. > > This message may contain confidential and/or privileged information. If you > are not the addressee or authorized to receive this for the addressee, you > must not use, copy, disclose or take any action based on this message or > any > information herein. If you have received this message in error, please, > advise the sender immediately by reply e-mail and delete this message. > Thank you for your cooperation. > > Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO > AMBIENTE. > ENVIRONMENT commitment and responsibility, think about Before Printing. > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html