我想知道的是,Pi的瓶颈在哪里?是CPU,RAM大小还是未加速的X服务器?浏览器是否可以直接使用GPU来加快速度?
#1 楼
它是Raspberry Pi相对较弱的ARM11 CPU和未加速的X服务器的结合。由于GPU无法加速,因此CPU必须完成所有渲染。在Pi上的ARM11内核之类的东西上,这给本来就很弱的CPU带来了很多额外的负担。我们已经看到X进程占用了CPU的25%。将Android手机中的芯片与Pi中的芯片(甚至超频)进行比较并不是很公平。手机中的1 GHz芯片可能类似于Cortex-A8或A9,它们使用该架构的ARMv7版本。因此,与使用ARMv6的ARM11相比,它们每个时钟周期的性能更高。
评论
GPU可以加速哪种2D绘制操作?
–三角龙
16年8月1日在12:45
@Trismegistos用颜色填充区域。结合透明背景的图层。平滑字体边缘。
–德米特里·格里戈里耶夫(Dmitry Grigoryev)
19-11-14在13:09
#2 楼
这已经是IMO的正确答案了,我的建议可能不会有多大区别,但了解它可能会很有用。如果只想运行浏览器,则不要也不必运行桌面环境。创建一个看起来像
$HOME/.xinitrc
的文件:#!/bin/sh
midori
如果.xinitrc已经存在,请暂时将其移动或注释掉其他内容。现在,请执行
startx
(显然,您不应该已经在其中-在未运行GUI的情况下从控制台执行此操作)。瞧,您只有浏览器,没有桌面。节省了一点点的内存,尽管到目前为止,浏览器是房间里的大象,而正在运行的Xorg服务器本身却比基本的lxde(现在不运行)。如果您有太多的内存加载到RAM中,那么您将使用交换,这将影响性能。上面的midori +裸X根据
free
使用<100 MB驻留: total used free shared buffers cached
Mem: 448708 242604 206104 0 82660 105156
-/+ buffers/cache: 54788 393920
Swap: 102396 0 102396
448708-393920 = 54788/1024 = 53.5 MB
打开了四个标签。同样,如果您查看这些内容并发现您的RAM几乎已满,那就是性能问题。请注意,即使内存未满也使用一些交换是正常的,所以不必担心-交换的内容的优先级较低。
需要进一步考虑的是性能明智的是,缓冲区和缓存的重要性。我没有将它们包括在总数中,请注意实际上它比承诺的内存还多(大约两倍)。那是正常的。如果您用承诺的东西填满内存,系统将只使用较少的缓存和/或将其转移以进行交换。无论哪种方式,这都会导致性能下降,因为缓存非常重要(它在大小上不是至关重要的或不变的,因此不属于已提交的内存状态)。
换句话说,最佳情况下,您希望已承诺的内存不超过pi上可用内存的75%,甚至可能少于此值。如果您使用LXDE并开始打开其他内容,则可能会很快开始采用该方法。
#3 楼
免责声明:以下内容描述了具有可疑效果的实验功能的使用。请确保测试引入的回归和实际性能提升。
您可以在
chrome://flags
下尝试使用某些Google Chrome浏览器/ Chromium标志,以提高(明显)浏览性能。有一篇文章解释了一些与性能有关的标志。我将尝试在此处收集一些信息:通过启用“ Overrrite Software Rendering List”来强制GPU加速,即使未将驱动程序列入白名单,也会使用GPU进行渲染,但会付出可能的失真。我不知道这与Pi的GPU配合得如何。
在所有页面上进行GPU合成将使用GPU滚动所有图层。因此,在没有GPU加速图层的页面上,滚动性能应有所提高。
逐个刷新窗口将是另一个提示。它会渲染图块并在准备就绪后立即显示它们,而不用等待最后一个完成。实际上,由于引入的开销,渲染将花费更长的时间,但是内容显示的速度会更快。
在单独线程中进行渲染将异步进行渲染并保持界面响应。您可以在页面仍在渲染时滚动。
禁用GPU VSync将更新渲染的内容,而不管监视器是否已加载它们。这会提高帧速率,但会出现显示不一致的情况。
启用/禁用任何开关后,您将必须重新启动Chrome / Chromium才能应用设置。标志页面底部的按钮可以为您做到这一点。
更进一步,可以使用命令行开关来优化Chrome / Chromium。有关完整列表,请参见Chromium命令行开关列表。
--default-tile-width
和--default-tile-height
可以设置为与屏幕尺寸的一小部分匹配,以加快每个页面的初始渲染。评论
我尝试了标记Override软件渲染列表,所有页面上的GPU合成和Pi上的线程化合成的标记,但是似乎没有明显的改进。我还尝试了在PC上的那些标志,似乎也没有任何改进。
– hello.wjx
13年2月27日在4:44
确保在编辑标志后重新启动Chrome。要测试Override软件渲染列表,请打开一个WebGL演示。要测试线程合成,请尝试在仍加载大页面时滚动。
– Bengt
13年1月1日在15:37
从我在这里阅读的内容:chromium.org/developers/design-documents/…使用“线程合成”对pi毫无帮助-它只有一个核心-可能会变得更糟,具体取决于重要性是“对当前呈现状态的副本进行操作”。
–金锁♦
13年5月5日在13:29
页面加载性能会降低,是的。但是Javascript不会阻止并等待渲染,并且页面将保持响应状态。您正在将一些客观绩效换成一些可感知的绩效。
– Bengt
2013年5月5日18:12
评论
而pi正在驱动3.5英寸480 x 800屏幕?;)如果不是那样,也许只是一个因素...使用VGA监视器通过HDMI到VGA电缆进行显示,配置为hdmi_mode = 35 1280x1024 60Hz ...但是将配置更改为hdmi_mode = 9 800x600 60Hz后我看不到任何改善
毫无疑问。我认为挖掘出的答案可以正确解决此问题,但我又添加了一个想法,供您参考。