<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentários para: Ponteiros no Pascal / Delphi &#8211; Alocando mem&#243;ria dinamicamente</title>
	<atom:link href="http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/</link>
	<description>Desenvolvendo o desenvolvimento</description>
	<lastBuildDate>Thu, 03 Nov 2011 11:52:48 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>Por: Alecão</title>
		<link>http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/#comment-1105</link>
		<dc:creator>Alecão</dc:creator>
		<pubDate>Wed, 13 Oct 2010 17:51:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/#comment-1105</guid>
		<description>Rodrigo, quando passamos um objeto, apenas passamos o seu &quot;ponteiro&quot;.
algo como

function Contar(AStream: TStream): Integer;

Quando chamado é apenas passado a referência do objeto alocado no Heap. E sendo a passagens de parâmetros &quot;register&quot; (padrão do Delphi), esta referência é passada por registradores da CPU, sendo assim, não temos melhora nenhuma em se usar explicitamente Ponteiros.

O mesmo não acontece nos casos de Records ou Arrays, esses sim são passados por Valor o que consomem memória. Como:

type
  TMeuRecord = record
    A: Double;
    B: Integer;
    C: array [0..1000] of Integer;
  end;

function Boo(AMeuRecord: TMeuRecord): Integer;

Mas nem é necessário usar ponteiro, basta usar a diretriz const assim:

function Boo(const AMeuRecord: TMeuRecord): Integer;

Deste jeito, apenas a referência é passada, e evitamos o problema do uso de memória.

Portanto, não há melhoras de performance em usar ponteiros, pelo menos no que se refere a passagem de parâmetros.

Podemos sim ter ganho de performance em alguns casos específicos, é o caso de manipulação de strings.</description>
		<content:encoded><![CDATA[<p>Rodrigo, quando passamos um objeto, apenas passamos o seu &#8220;ponteiro&#8221;.<br />
algo como</p>
<p>function Contar(AStream: TStream): Integer;</p>
<p>Quando chamado é apenas passado a referência do objeto alocado no Heap. E sendo a passagens de parâmetros &#8220;register&#8221; (padrão do Delphi), esta referência é passada por registradores da CPU, sendo assim, não temos melhora nenhuma em se usar explicitamente Ponteiros.</p>
<p>O mesmo não acontece nos casos de Records ou Arrays, esses sim são passados por Valor o que consomem memória. Como:</p>
<p>type<br />
  TMeuRecord = record<br />
    A: Double;<br />
    B: Integer;<br />
    C: array [0..1000] of Integer;<br />
  end;</p>
<p>function Boo(AMeuRecord: TMeuRecord): Integer;</p>
<p>Mas nem é necessário usar ponteiro, basta usar a diretriz const assim:</p>
<p>function Boo(const AMeuRecord: TMeuRecord): Integer;</p>
<p>Deste jeito, apenas a referência é passada, e evitamos o problema do uso de memória.</p>
<p>Portanto, não há melhoras de performance em usar ponteiros, pelo menos no que se refere a passagem de parâmetros.</p>
<p>Podemos sim ter ganho de performance em alguns casos específicos, é o caso de manipulação de strings.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Rodrigo Farias Rezino</title>
		<link>http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/#comment-1104</link>
		<dc:creator>Rodrigo Farias Rezino</dc:creator>
		<pubDate>Tue, 12 Oct 2010 14:38:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/#comment-1104</guid>
		<description>Dependendo do caso faz sim.
Se você precisa passar algum stream por parâmetro por exemplo, se o mesmo tiver mais que 32bits, é melhor você passar o ponteiro que vai ser menos custoso pro stack, por exemplo.</description>
		<content:encoded><![CDATA[<p>Dependendo do caso faz sim.<br />
Se você precisa passar algum stream por parâmetro por exemplo, se o mesmo tiver mais que 32bits, é melhor você passar o ponteiro que vai ser menos custoso pro stack, por exemplo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Alecão</title>
		<link>http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/#comment-1088</link>
		<dc:creator>Alecão</dc:creator>
		<pubDate>Fri, 30 Oct 2009 10:21:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/#comment-1088</guid>
		<description>Não, a utilização de ponteiros não melhora a performance.</description>
		<content:encoded><![CDATA[<p>Não, a utilização de ponteiros não melhora a performance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Carlos</title>
		<link>http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/#comment-1087</link>
		<dc:creator>Carlos</dc:creator>
		<pubDate>Fri, 30 Oct 2009 01:51:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.brasiltech.net/developez/2008/05/10/ponteiros-no-pascal-delphi-alocando-memria-dinmicamente/#comment-1087</guid>
		<description>Humm legal mas eu sempre quis saber... Mas issofaz com que use menos processo do processador ?</description>
		<content:encoded><![CDATA[<p>Humm legal mas eu sempre quis saber&#8230; Mas issofaz com que use menos processo do processador ?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

