小编Rob*_*ock的帖子

未知类型名称'uint8_t',MinGW

我得到了"未知类型名称'uint8_t'",其他人喜欢在MinGW中使用C语言.任何想法如何解决这个问题?

c windows mingw

61
推荐指数
3
解决办法
17万
查看次数

用整数索引执行数组表查找的最快方法是什么?

我有一个移动大量数据的视频处理应用程序。

为了加快处理速度,我制作了一个查询表,因为实际上许多计算只需要计算一次即可重用。

但是,我现在所有查找都需要30%的处理时间。我想知道它是否可能是慢速RAM。但是,我仍然想尝试对其进行更多优化。

目前,我有以下内容:

public readonly int[] largeArray = new int[3000*2000];
public readonly int[] lookUp = new int[width*height];
Run Code Online (Sandbox Code Playgroud)

然后,我使用一个指针p(相当于width * y + x)执行查找以获取结果。

int[] newResults = new int[width*height];
int p = 0;
for (int y = 0; y < height; y++) {
   for (int x = 0; x < width; x++, p++) {
      newResults[p] = largeArray[lookUp[p]];
   }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我无法进行整个阵列复制以进行优化。而且,该应用程序是高度多线程的。

在缩短函数堆栈方面取得了一些进展,因此没有吸气剂,而是直接从只读数组中检索。

我也尝试过转换为ushort,但是它似乎要慢一些(据我了解,这是由于字长引起的)。

IntPtr会更快吗?我将如何处理?

下面的附件是时间分配的屏幕截图:

在此处输入图片说明

c# memory lookup

37
推荐指数
1
解决办法
2783
查看次数

WebGL和Chrome:高分辨率会导致性能下降

我有一个用LibGDX创建的应用程序.我可以在桌面上运行该应用程序,它以90 fps @ 1080p运行.

在Firefox上,它以40-50 fps @ 1080p(最大化窗口)运行.

在Chrome上,它以30 fps @ 1080p(最大化窗口)运行.

但是在Chrome上,如果我降低分辨率,性能会翻倍(达到60fps).在Firefox上,这不会发生.这可能是什么原因?

我正在使用webkitRequestAnimationFrame.

如图所示,我知道我的电脑可以很好地处理分辨率.

编辑

我正在尝试应用下面的提示,虽然它们似乎主要针对移动GPU.

资料来源:https://wiki.mozilla.org/Platform/GFX/MobileGPUs#Memory_Bandwidth

始终在glBindFramebuffer之后立即调用glClear

请参阅Adreno 200文档的第3.2.1节:"必须(a)在切换帧缓冲对象(FBO)时使用清除以避免驱动程序尝试保存/恢复GMEM内容,以及(b)始终清除深度-buffer在一个帧的开头."

这是有道理的,所以我们应该总是这样做.具体来说,这意味着我们应该在每次glBindFramebuffer调用之后执行glClear,理想情况是在它之后,或者至少在任何绘制调用之前.

Framebuffer绑定很昂贵

更改帧缓冲区绑定强制会立即解析当前帧缓冲区的渲染.因此,对渲染进行排序以最小化帧缓冲区绑定非常重要.Adreno 200文档的第3.2.4节有一个有用的解释.

编辑

以上并没有显着的差异.

编辑

我感觉这个问题是由于GLSL编译器引起的.我对这个主题没有太多的了解,但我相信OpenGL ES的GLSL编译成普通的GLSL,并带有一些特定于浏览器的代码.可能是Chrome编译的次数不够理想,导致片段着色会在较高分辨率下降低程序速度.

如果某人有关于如何确保此编译最优化的一些提示,我可以尝试一下,看看它是否解决了问题.

编辑

在使用英特尔高清显卡4000+芯片组的Windows上Chrome中,问题似乎并不普遍.Chrome版本:40.0.2214.111米.分辨率低:45fps~.高分辨率:30 fps稳定.

我最初的测试案例是在Ubuntu上使用GTX 650的Chrome.Chrome版本将在稍后添加.

编辑

显示此问题的Chrome版本:GTX 650显卡上Ubuntu上的40.0.2214.111(64位).

编辑

在配备GTX 650的同一台PC上,在Windows 7下,同一应用程序在Chrome下稳定运行60fps.由于在Ubuntu下编译为Java的应用程序运行速度为90fps,我认为它不能成为Linux驱动程序的问题,而是Chrome版Linux的问题.

编辑

我已经向Chrome发送了一个关于此问题的错误报告.

javascript google-chrome webgl libgdx

26
推荐指数
1
解决办法
2841
查看次数

跳过PostgreSQL中的每个第n个结果行

我正在寻找一种在PostgreSQL中跳过行的方法.

我可以通过以下两种方式使用:

SELECT * FROM table WHERE id % 5 = 0
Run Code Online (Sandbox Code Playgroud)

但是,我必须获取顺序行才能正确跳过.例如,如果我获取行(带有ids)0,3,5,它将不会跳过5行中的4行,而是导致(ids)0和5.

或跳过SQL之外:

$count = 0;
while($row = progres_fetch_row($result))
  if ($count++ % 5 == 0)
     // do something 
Run Code Online (Sandbox Code Playgroud)

从SQL数据库获取每个第n行的最快方法是什么?

sql postgresql

16
推荐指数
1
解决办法
8799
查看次数

如何使用OpenGL将OpenCL计算像素绘制到屏幕上?

我不想用OpenCL做一些计算过的pixelart,直接在显示器上显示它而不需要CPU往返.我可以使用OpenCL与OpenGL的互操作性,并写入GPU的纹理库并使用OpenGL显示纹理.我想知道最好的方法是什么,因为我不需要任何3D东西,只需2d pixelart.

opengl pixel opencl

13
推荐指数
1
解决办法
3668
查看次数

找出着色器中GL_TEXTURE_2D是否处于活动状态

我想知道在着色器中GL_TEXTURE_2D是否处于活动状态.

我将颜色绑定到着色器以及活动纹理(如果设置了GL_TEXTURE_2D)并且需要将这两者结合起来.

因此,如果绑定了纹理,请混合颜色和纹理(sampler2D*颜色),如果没有绑定纹理,请使用颜色.

或者我应该采取另一种方式吗?

opengl glsl

12
推荐指数
1
解决办法
4277
查看次数

Sensor.TYPE_ROTATION_VECTOR有漂移:有替代方案吗?

我正在Android上试用Sensor.TYPE_ROTATION_VECTOR.它应该使用磁场传感器,加速度计和陀螺仪始终提供准确的旋转.但是,我注意到Moto G 2nd发生了巨大的漂移.我想知道这是否是特定于设备的问题,或者这种情况发生在很多手机上(我会假设,虽然我很熟悉Moto G 2nd是一个有问题的陀螺仪).

是否有另一种形式的传感器融合,它是无漂移的(使用磁传感器)?我也试过了Google Cardboard的传感器融合,但它使用了偏差估计,因此可能并非完全漂移(因为此时看不到磁场传感器),尽管仍然比TYPE_ROTATION_VECTOR好很多.

android accelerometer magnetometer gyroscope sensor-fusion

12
推荐指数
1
解决办法
1107
查看次数

Java快速像素操作

我想知道如何在Java中处理最佳的像素操作.我正在使用swing并绘制一个1 x 1像素的矩形非常慢.我需要至少获得60 fps,而不需要使用太多资源.对图像的影响首先意味着这可以成功地取得成功吗?或者用Java做这件事一般是个坏主意我是否需要坚持使用C或其他替代方案?

我正在编写一个raycaster的开头,因为我正在使用的openCL有一个Java包装器,我更喜欢用Java工作.

java performance swing pixel draw

11
推荐指数
2
解决办法
6454
查看次数

MessageBox在SaveFileDialog之后没有显示(聚焦)

出于某些原因,在我的SaveFileDialog之后,我的应用程序将永远不会显示MessageBox.有什么我想念的吗?或者这是一个线程问题?

我使用VS 2010 Express将应用程序作为Windows窗体应用程序运行.

我没有任何例外.

添加:当我单步执行代码时,一切似乎都很顺利.这很奇怪,所以我认为这是一个时间问题.

LarsTech和其他人指出,MessageBoxes确实出现了,但重点已经消失; 换句话说,MessageBox被推到其他窗口后面或最小化.这是个问题.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Globalization;
using System.IO;
namespace SpeedDating
{
    class Program
    {
         [STAThread]
        static void Main(string[] args)
        {

        string filename = "test.test"; // args[0];
        string ext = filename.Substring(filename.LastIndexOf('.'));
        SaveFileDialog dialog = new SaveFileDialog();
        dialog.Title = "SpeedDating App";
        dialog.RestoreDirectory = true;
        dialog.CheckFileExists = false;
        dialog.CheckPathExists = false;
        dialog.FileName = DateTime.Now.ToString("yyyyMMdd") + ext;

        DialogResult result = dialog.ShowDialog();
        if (result == DialogResult.OK && dialog.FileName != "")
        { …
Run Code Online (Sandbox Code Playgroud)

c# visual-studio-2010 winforms

7
推荐指数
1
解决办法
6961
查看次数

大O - 嵌套循环

void bar(int N){
  int c=0;
  for (int i=0; i<N*N; i++)
    for (int j= i; j< N; j++)
      c++;
}
Run Code Online (Sandbox Code Playgroud)

上面的外部(和内部)循环永远不会超过N.这是否意味着大O是N*N(外部为N,内部为N/2)?

big-o

5
推荐指数
1
解决办法
585
查看次数