在FreeBSD v8.1上Linux的/ proc/cpuinfo相当于什么?我的应用程序读取/ proc/cpuinfo并将信息保存在日志文件中,我该怎么做才能在FreeBSD上记录类似的信息?
示例/ proc/cpuinfo如下所示:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
stepping : 8
cpu MHz : 2499.015
cache size : 6144 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge …Run Code Online (Sandbox Code Playgroud) 在子类中,我重写了一个未在超类中公开的方法.我知道我有正确的签名,因为它成功地覆盖了超类的实现.但是,作为新实现的一部分,我需要从子类的实现中调用超类的实现.
因为它没有暴露,我必须通过调用来调用该方法performSelector:
SEL superClassSelector = NSSelectorFromString(@"methodToInvoke");
[super performSelector:superClassSelector];
Run Code Online (Sandbox Code Playgroud)
但是,在我的应用程序中,这会产生一个无限的递归循环,每次我尝试调用超类的实现时都会调用子类的实现.
有什么想法吗?
我意识到这是一种非典型的情况,但不幸的是,我无法绕过我想要做的事情.
是否可以从框架对象中检索任何类信息?我知道如何获取文件(frame.f_code.co_filename),函数(frame.f_code.co_name)和行号(frame.f_lineno),但希望能够获取活动对象的类的名称框架的实例(如果不在实例中,则为None).
我正在草拟一些设计(函数的机器学习),它最好是想要一种函数式编程语言,还有内省,特别是以一些易于处理的格式检查程序自己的代码的能力,最好还有获取机器的能力.生成的代码是在运行时编译的,我想知道什么是编写它的最佳语言.Lisp当然具有强大的内省功能,但静态类型语言也有优势; 我正在考虑的是:
F# - .Net平台在这里有一个很好的故事,你可以在运行时读取字节码,也可以发出字节码并进行编译; 我假设从F#访问这些设施没有问题.
Haskell,Ocaml - 通过字节码或解析树,它们有类似的功能吗?
还有其他语言我还应该关注吗?
我现在要用c ++ 11编写大项目.
我正在寻找一些好的c ++ 11/c ++反射库,我发现了几个不同的库,但是大多数库在过去几年都没有更新,或者它们的功能非常有限.
你能告诉我是否有一个非常好的c ++ 1/c ++库用于反射?(我希望有静态和动态反射,尽可能多地了解方法,类等信息,可以动态添加和访问方法等)
或许c ++ 11提供了一些额外的功能,有助于更好地设计反射库,我应该自己编写吗?(虽然我没有找到有关它的信息.)
如何查明子类是否覆盖了某个方法?
例如,
public class Test {
static public class B {
public String m() {return "From B";};
}
static public class B1 extends B {
}
static public class B2 extends B {
public String m() {return "from B2";};
}
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) {
B b1 = new B1();
System.out.println("b1 = " + b1.m());
B b2 = new B2();
System.out.println("b1 = " + b2.m());
}
}
Run Code Online (Sandbox Code Playgroud)
给定B的一个实例,我怎么知道任何派生类是否有像B2这样的重写方法m()?
更新:我的问题不明确.实际上,我试图在不诉诸反思的情况下询问是否可行.这种检查是在一个紧凑的循环中完成的,它用于性能破解以节省一些CPU周期.
有没有办法以编程方式获取类型类的实例列表?
让我觉得编译器必须知道这些信息才能输入检查和编译代码,所以有没有办法告诉编译器:嘿,你知道那个类的实例,请在这里列出它们(如字符串或其他任何表示形式).
我如何A从内部b.func()(即A实例self)内省实例:
class A():
def go(self):
b=B()
b.func()
class B():
def func(self):
# Introspect to find the calling A instance here
Run Code Online (Sandbox Code Playgroud) 我想知道两件事:
1-是否可以通过使用objective-c内省来了解块的返回类型.
例如:int (^CountBlock)(NSArray *array)我想知道它将返回的类型int.
第二个问题是:
2-我可以保留对通用块的引用吗?我的意思是,基本上我可以id myBlock用这个答案做第一个问题.
我尝试了什么
这种东西是不可能的:
id aBlock = ^{
NSString * aString = @"OMG";
return aString;
};
aBlock();
Run Code Online (Sandbox Code Playgroud)
由于编译器发现它id aBlock不是函数或函数指针.
我正试图在Perl 6中感到舒服.当我在REPL提示符下时,我在Python中发现的一件事就是我可以做一个dir(对象)并找出一个对象的属性,在Python中包含对象的方法.
这通常有助于提醒我想做什么; "哦,这是正确的,Python中的修剪被称为条带",就像那样.
在Perl 6中,我知道内省方法.WHO,.WHAT,.WHICH,.HOW和.WHY,但这些是在类或对象级别.我如何找出对象内部的内容,以及我可以对它做些什么?
introspection ×10
haskell ×2
objective-c ×2
python ×2
block ×1
c++ ×1
c++11 ×1
cpu ×1
f# ×1
freebsd ×1
inheritance ×1
ios ×1
java ×1
linux ×1
methods ×1
ocaml ×1
overriding ×1
perl6 ×1
porting ×1
raku ×1
reflection ×1