问题列表 - 第23728页

计数到零,与计算长度相反 - 1

是否建议将小循环(如果可能)从长度 - 1减少到零,而不是计算长度 - 1?

1.)倒计时

for (int i = a.length - 1; i >= 0; i--) {
    if (a[i] == key) return i;
}
Run Code Online (Sandbox Code Playgroud)

2.)数数

for (int i = 0; i < a.length; i++) {
    if (a[i] == key) return i;
}
Run Code Online (Sandbox Code Playgroud)

第一个比第二个快一点(因为比较零更快)但在我看来更容易出错.此外,第一个可能无法通过JVM的未来改进进行优化.有什么想法吗?

java micro-optimization

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

(x86)汇编程序优化

我正在为Java构建针对Windows的x86-32(IA32)处理器的编译器/汇编器/链接器.

高级概念(我没有任何"源代码":没有语法或词汇翻译,所有语言都是常规的)被翻译成操作码,然后将其包装并输出到文件中.翻译过程有几个阶段,一个是常规语言之间的翻译:最高级别的代码被翻译成中级代码,然后被翻译成最低级别的代码(可能超过3个级别).

我的问题如下; 如果我有更高级别的代码(XY)转换为较低级代码(x,y,UV),那么这样的翻译的一个例子是,在伪代码:

x + U(f) // generated by X
+
V(f) + y // generated by Y
Run Code Online (Sandbox Code Playgroud)

(一个简单的例子)在哪里V是相反的U(与堆栈推送U和pop相比V).这需要"优化"为:

x + y
Run Code Online (Sandbox Code Playgroud)

(基本上删除"无用的"代码)

我的想法是使用正则表达式.对于上面的情况,它将是一个看起来像这样的正则表达式:x:(U(x)+V(x)):null,意思是所有x查找U(x)后跟V(x)和替换null.想象一下更复杂的正则表达式,用于更复杂的优化.这应该适用于所有级别.

你有什么建议?什么是优化和生产快速x86组件的好方法?

optimization assembly code-generation

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

将包含数据的Java代码发送到.jar中

我需要发布一些具有相关数据集的Java代码.它是设备的模拟器,我希望能够在一个.JAR文件中包含用于模拟记录的所有数据.在这种情况下,每个模拟记录包含四个字段(主叫方,被叫方,呼叫开始,呼叫持续时间).

最好的方法是什么?我已经沿着生成数据的路径走向了Java语句,但IntelliJ似乎并不特别高兴处理100,000行Java源文件!

有更聪明的方法吗?

在C#/ .NET世界中,我将数据创建为单独的文件,将其作为资源嵌入到程序集中,然后使用反射在运行时将其拉出并访问它.我不确定Java世界中适当的比喻是什么.

FWIW,Java 1.6,适用于Solaris.

java

3
推荐指数
1
解决办法
953
查看次数

使用JNI将数据类型从Java传递到C(反之亦然)

使用JNI我们可以将自定义数据类型从Java传递到C(反之亦然)吗?我看到原始数据类型到C中的类型的映射,但是我们不能确定是否可以发送我们自己的数据类型(例如发送或返回一个Employee对象或其他东西!).

c java java-native-interface

31
推荐指数
1
解决办法
3万
查看次数

115
推荐指数
4
解决办法
11万
查看次数

嵌套方法中的C#yield

如果我单步执行以下代码,则会跳过对ReturnOne()的调用.

static IEnumerable<int> OneThroughFive()
{
    ReturnOne();
    yield return 2;
    yield return 3;
    yield return 4;
    yield return 5;
}

static IEnumerator<int> ReturnOne()
{
    yield return 1;
}
Run Code Online (Sandbox Code Playgroud)

我只能假设编译器正在剥离它,因为我正在做的是无效的.我希望能够将我的枚举分离成各种方法.这可能吗?

c# ienumerable yield

18
推荐指数
1
解决办法
4740
查看次数

一些指向理解GCC源代码的指针

我正在努力为多核处理器优化GCC.我尝试浏览源代码,很难遵循它,因为我需要在后端添加一些代码.任何人都可以建议一些好的资源,解释通过不同阶段的代码流.还提出了一些调试GCC的开发环境,主要是逐步完成代码.在Windows上有可能吗?

multicore compiler-optimization gcc4

6
推荐指数
1
解决办法
1574
查看次数

跟踪变化 - Django

我有各种模型,我想跟踪和收集统计数据.

问题是如何在整个时间内存储更改.

我想到了各种替代方案:

  • 将日志存储在TextField中,打开它并在每次保存模型时更新它.
  • 或者,选择一个列表并将其存储在TextField中.
  • 将日志保存在硬盘上.

你有什么建议?

python django django-models

6
推荐指数
1
解决办法
1502
查看次数

Python多行字符串的正确缩进

函数中Python多行字符串的正确缩进是什么?

    def method():
        string = """line one
line two
line three"""
Run Code Online (Sandbox Code Playgroud)

要么

    def method():
        string = """line one
        line two
        line three"""
Run Code Online (Sandbox Code Playgroud)

或者是其他东西?

在第一个例子中将字符串悬挂在函数外部看起来有点奇怪.

python string

430
推荐指数
7
解决办法
30万
查看次数

Android:从最佳可用提供商处获取当前位置

我有一些Android代码,需要从GPS,网络或任何可用的地方快速获得最佳可用位置.准确性不如速度重要.

获得最佳可用位置肯定是一项非常标准的任务.然而,我找不到任何代码来证明它.Android位置代码要求您指定条件,注册更新和等待 - 如果您有详细的标准并且不介意等待,这很好.

但我的应用程序需要更多地工作,就像地图应用程序第一次找到你时 - 从任何可用的提供程序工作,只需检查位置是不是过时或过时.

我试图推出自己的代码来做到这一点,但我遇到了问题.(它在IntentService内部发生上传,如果这有任何区别.我已经包含了所有信息代码.)这段代码出了什么问题?

@Override
protected void onHandleIntent(Intent arg0) {
    testProviders();
    doUpload();
}
private boolean doUpload() {
       int j = 0;
       // check if we have accurate location data yet - wait up to 30 seconds
       while (j < 30) {
           if ((latString == "") || (lonString == "")) {
               Log.d(LOG_TAG, "latlng null");
               Thread.sleep(1000);
               j++;
       } else {
                Log.d(LOG_TAG, "found lat " + latString + " and lon " + lonString);
            break;
       }
       //do the upload …
Run Code Online (Sandbox Code Playgroud)

android

19
推荐指数
2
解决办法
4万
查看次数