标签: runtime

运行时与编译时间

任何人都可以让我很好地理解运行时和编译时的区别是什么?

runtime compile-time

340
推荐指数
15
解决办法
28万
查看次数

如何在运行时找到方法的定义?

我们最近遇到了一个问题,即在发生一系列提交后,后端进程无法运行.现在,我们都是优秀的小男孩和女孩,并rake test在每次办理登机手续后都跑了,但由于Rails图书馆装载中的一些奇怪现象,它只发生在我们直接从生产模式中的Mongrel运行时.

我追踪了这个错误,这是因为一个新的Rails gem以一种破坏运行时Rails代码中一个狭隘用法的方式覆盖了String类中的一个方法.

无论如何,长话短说,有没有办法在运行时询问Ruby在哪里定义了一个方法?这样的whereami( :foo )回归/path/to/some/file.rb line #45?在这种情况下,告诉我它是在类String中定义的将是无益的,因为它被某些库重载.

我不能保证源代码存在于我的项目中,因此grepping 'def foo'不一定会给我我需要的东西,更不用说我是否有很多东西 def foo,有时候直到运行时我才知道我可能正在使用哪一个.

ruby methods runtime ruby-on-rails definition

325
推荐指数
7
解决办法
8万
查看次数

如何动态地向类添加属性?

目标是创建一个类似于db结果集的模拟类.

因此,例如,如果数据库查询使用dict表达式返回{'ab':100, 'cd':200},那么我想看到:

>>> dummy.ab
100
Run Code Online (Sandbox Code Playgroud)

起初我想也许我可以这样做:

ks = ['ab', 'cd']
vs = [12, 34]
class C(dict):
    def __init__(self, ks, vs):
        for i, k in enumerate(ks):
            self[k] = vs[i]
            setattr(self, k, property(lambda x: vs[i], self.fn_readyonly))

    def fn_readonly(self, v)
        raise "It is ready only"

if __name__ == "__main__":
    c = C(ks, vs)
    print c.ab
Run Code Online (Sandbox Code Playgroud)

但是c.ab返回一个属性对象.

更换setattr线路k = property(lambda x: vs[i])完全没用.

那么在运行时创建实例属性的正确方法是什么?

PS我知道如何__getattribute__使用该方法?

python monkeypatching runtime properties

193
推荐指数
11
解决办法
19万
查看次数

Objective-C运行时:检查类是否符合协议的最佳方法?

我有一个类(但没有实例),需要知道它是否符合某个协议.但是,Class可以多次子类化,class_conformsToProtocol()忽略在超类上声明的协议.

我可以使用class_getSuperclass()并递归检查层次结构中的所有类,直到超类为nil.但是,我想知道这对于深层嵌套的类层次结构来说是否效率低下,也许有更好的方法可以做到这一点?

换句话说,如何使用Objective-C运行时方法最好地实现NSObject方法conformsToProtocol,以便在超类上找到协议?

 [myObject conformsToProtocol:@protocol(MyProtocol)];
Run Code Online (Sandbox Code Playgroud)

如果我在正确的轨道上以递归方式上升类层次结构,请告诉我.

runtime objective-c

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

java.lang.NoClassDefFoundError:无法初始化类XXX

public class PropHolder {
  public static Properties prop;

  static {
    //code for loading properties from file
  }
}

// Referencing the class somewhere else:
Properties prop = PropHolder.prop;
Run Code Online (Sandbox Code Playgroud)

class PropHolder是我自己的一类.该类驻留在主类的同一JAR文件中.所以这不应该因为类路径中缺少任何JAR.

当我查看JAR文件时jar tf myjarfile,我可以看到PropHolder.class列出的那个.

顺便说一句:代码在我的本地机器上正常运行.但是当我将一些脚本部署到Linux服务器上时,它无法工作.所以我认为这不是代码的问题.但出于某种原因.部署过程很难跟踪.

可能是什么问题呢?

java runtime jar noclassdeffounderror

154
推荐指数
4
解决办法
35万
查看次数

什么是C运行时库?

实际上是什么是C运行时库以及它用于什么?我正在搜索,谷歌搜索像魔鬼,但我找不到比微软更好的东西:"微软运行时库提供了Microsoft Windows操作系统编程的例程.这些例程自动执行许多常见的编程任务,这些任务不是由微软提供的. C和C++语言."

好的,我明白了,但是例如,是什么libcmt.lib?它有什么作用?我认为C标准库是C编译器的一部分.那么libcmt.libWindows的C标准库函数的实现是否可以在win32下运行?

c runtime

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

java runtime.getruntime()从执行命令行程序获取输出

我正在使用运行时从我的Java程序运行命令提示符命令.但是我不知道如何获得命令返回的输出.

这是我的代码:

Runtime rt = Runtime.getRuntime();

String[] commands = {"system.exe", "-send" , argument};

Process proc = rt.exec(commands);
Run Code Online (Sandbox Code Playgroud)

我尝试过,System.out.println(proc);但没有返回任何东西.该命令的执行应返回由分号分隔的两个数字,我怎样才能在变量中打印出来?

这是我现在使用的代码:

String[] commands = {"system.exe", "-get t"};

Process proc = rt.exec(commands);

InputStream stdIn = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdIn);
BufferedReader br = new BufferedReader(isr);

String line = null;
System.out.println("<OUTPUT>");

while ((line = br.readLine()) != null)
     System.out.println(line);

System.out.println("</OUTPUT>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何东西作为我的输出,但当我自己运行该命令它工作正常.

java runtime

131
推荐指数
7
解决办法
23万
查看次数

D与C++相比有多快?

我喜欢D的一些功能,但如果它们带来运行时惩罚会有兴趣吗?

为了比较,我实现了一个简单的程序,用C++和D计算许多短向量的标量积.结果令人惊讶:

  • D:18.9秒[最终运行时见下文]
  • C++:3.8秒

C++真的几乎快了五倍,还是我在D程序中犯了错误?

我在一个温和的最近的Linux桌面上用g ++ -O3(gcc-snapshot 2011-02-19)和D和dmd -O(dmd 2.052)编译了C++.结果可在多次运行中重现,标准偏差可忽略不计.

这里的C++程序:

#include <iostream>
#include <random>
#include <chrono>
#include <string>

#include <vector>
#include <array>

typedef std::chrono::duration<long, std::ratio<1, 1000>> millisecs;
template <typename _T>
long time_since(std::chrono::time_point<_T>& time) {
      long tm = std::chrono::duration_cast<millisecs>( std::chrono::system_clock::now() - time).count();
  time = std::chrono::system_clock::now();
  return tm;
}

const long N = 20000;
const int size = 10;

typedef int value_type;
typedef long long result_type;
typedef std::vector<value_type> vector_t;
typedef typename vector_t::size_type size_type;

inline value_type scalar_product(const vector_t& x, const vector_t& …
Run Code Online (Sandbox Code Playgroud)

c++ performance d runtime

130
推荐指数
7
解决办法
3万
查看次数

动态更改log4j日志级别

有哪些动态更改log4j日志级别的方法,以便我不必重新部署应用程序.在这些情况下,这些变化是永久性的吗?

java logging log4j runtime

120
推荐指数
4
解决办法
15万
查看次数

是否有"vim运行时日志"?

有时我在我的vimrc中尝试自定义/命令.一切都是正确的,但它不起作用.

很难知道当vim启动时发生了什么,并且知道哪个命令失败了,所以很难调试可能导致我的vimrc出现问题的原因.这是一种试错法,耗时而且真的是PITA.例如,我在某些文件中遇到了snipmate插件的问题,并且没有关于如何发现问题的线索.

当vim启动时是否有"运行时日志",告诉它执行哪些命令,哪些命令失败等等?这对我很有帮助.

vim logging runtime

118
推荐指数
3
解决办法
5万
查看次数