的调度机制R的功能rbind()和cbind()是非标准.当其中一个论点是a时,我探索了写作rbind.myclass()或cbind.myclass()函数的一些可能性data.frame,但到目前为止我还没有一个令人满意的方法.这篇文章集中于rbind,但同样适用cbind.
让我们创建一个rbind.myclass()函数,只需在调用时回显.
rbind.myclass <- function(...) "hello from rbind.myclass"
Run Code Online (Sandbox Code Playgroud)
我们创建了一个类的对象,myclass以下调用rbind所有正确的调度rbind.myclass()
a <- "abc"
class(a) <- "myclass"
rbind(a, a)
rbind(a, "d")
rbind(a, 1)
rbind(a, list())
rbind(a, matrix())
Run Code Online (Sandbox Code Playgroud)
但是,当其中一个参数(这不一定是第一个)时,rbind()将调用base::rbind.data.frame():
rbind(a, data.frame())
Run Code Online (Sandbox Code Playgroud)
这种行为有点令人惊讶,但它实际上已在文档中
dispatch记录rbind().给出的建议是:
如果要将其他对象与数据帧组合在一起,可能需要先将它们强制转换为数据帧.
实际上,这个建议可能难以实施.转换为数据框可能会删除基本类信息.此外,在发出命令之后,可能不知道该建议的用户可能会遇到错误或意外结果rbind(a, x).
第一种可能性是警告用户在数据帧rbind(a, x)时不应该进行呼叫x.相反,包的用户mypackage应该显式调用隐藏函数:
mypackage:::rbind.myclass(a, x)
Run Code Online (Sandbox Code Playgroud)
这可以完成,但用户必须记住在需要时进行显式调用.调用隐藏函数是最后的手段,不应该是常规策略. …
例如我想删除dispatch: any这里:
export const fetchAllAssets = () => (dispatch: any) => {
dispatch(actionGetAllAssets);
return fetchAll([getPrices(), getAvailableSupply()]).then((responses) =>
dispatch(actionSetAllAssets(formatAssets(responses))));
}
Run Code Online (Sandbox Code Playgroud)
我在上面发送了 2 个操作,actionsGetAllAssets并且actionsSetAllassets.
以下是两者的接口和 actionCreators:
// Interfaces
interface IActions {
GET_ALL_ASSETS: string;
SET_ALL_ASSETS: string;
GET_MARKET_PRICES: string;
SET_MARKET_PRICES: string;
ADD_COIN_PORTFOLIO: string;
ADD_COINS_PORTFOLIO: string;
UPDATE_COIN_PORTFOLIO: string;
REMOVE_COIN_PORTFOLIO: string;
}
interface IGetAllAssets {
type: IActions['GET_ALL_ASSETS'];
loading: boolean;
}
interface ISetAllAssets {
type: IActions['SET_ALL_ASSETS'];
assets: IAsset[];
loading: boolean;
}
// ACTION CREATORS
const actionGetAllAssets = () => ({
type: …Run Code Online (Sandbox Code Playgroud) 当我尝试在我的设备上进行调试时,我有时会收到错误并且调试器不会在任何断点上停止.此外,应用程序甚至没有正确启动,它只是在应用程序图标和名称顶部的黑色屏幕冻结.
错误是eclipse中的弹出窗口,标题为"'JDI Event Dispatch'遇到问题.在'JDI事件调度'期间发生内部错误." 我有一个确定和详细信息按钮,当我按下后者时,我得到以下详细信息:"在发生内部错误:"JDI事件调度".java.lang.NullPointerException"
我在Eclipse Java EE Helios Service Release 2中工作.任何帮助将不胜感激
我使用动画来指定提示以帮助延迟交互使用这些:
let delay = 1.8 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue()) {
//call the method which have the steps after delay.
self.rain.alpha = 0
UIView.animateWithDuration(5, animations: {
self.rain.alpha = 1
})
self.tip.startAnimating()
}
Run Code Online (Sandbox Code Playgroud)
但是,如果在动画开始之前,用户触摸屏幕,我需要停止此延迟过程.
我正在尝试加速可变位宽整数压缩方案,我有兴趣在运行中生成和执行汇编代码.目前,大量时间花在错误预测的间接分支上,并且基于所发现的一系列位宽生成代码似乎是避免这种惩罚的唯一方法.
一般技术被称为"子程序线程"(或"调用线程",尽管这也有其他定义).目标是利用处理器有效的呼叫/返回预测,以避免停顿.这种方法在这里有详细描述:http: //webdocs.cs.ualberta.ca/~amaral/cascon/CDP05/slides/CDP05-berndl.pdf
生成的代码只是一系列调用,后跟返回.如果有5个"块"的宽度[4,8,8,4,16],它看起来像:
call $decode_4
call $decode_8
call $decode_8
call $decode_4
call $decode_16
ret
Run Code Online (Sandbox Code Playgroud)
在实际使用中,它将是一个较长的一系列调用,具有足够的长度,每个系列可能是唯一的,只调用一次.无论是在这里还是在其他地方,生成和调用代码都有详细记录.但是,除了简单的"不要做"或者考虑周全的"有龙"之外,我还没有找到很多关于效率的讨论.即使是英特尔文档也主要说明了一般性:
8.1.3处理自我修改和交叉修改代码
处理器将数据写入当前正在执行的代码段以将该数据作为代码执行的动作称为自修改代码.IA-32处理器在执行自修改代码时表现出特定于模型的行为,具体取决于当前执行指针在代码被修改之前的距离....自修改代码将以比非自修改或普通代码更低的性能级别执行.性能恶化的程度取决于修改的频率和代码的特定特征.
11.6自修改代码
对当前在处理器中高速缓存的代码段中的存储器位置的写入导致相关联的高速缓存行(或多个行)无效.此检查基于指令的物理地址.此外,P6系列和奔腾处理器检查对代码段的写入是否可以修改已经预取执行的指令.如果写入影响预取指令,则预取队列无效.后一种检查基于指令的线性地址.对于Pentium 4和Intel Xeon处理器,代码段中的指令的写入或窥探(其中目标指令已经被解码并驻留在跟踪高速缓存中)使整个跟踪高速缓存无效.后一种行为意味着在Pentium 4和Intel Xeon处理器上运行时,自我修改代码的程序可能会导致性能严重下降.
虽然有一个性能计数器来确定是否发生了不好的事情(C3 04 MACHINE_CLEARS.SMC:检测到自修改代码机器清除的数量)我想知道更多细节,特别是Haswell.我的印象是,只要我能够提前编写生成的代码,指令预取还没有到达那里,并且只要我不通过修改同一页面上的代码来触发SMC检测器(四分之一 - 页面?)作为当前正在执行的任何内容,那么我应该获得良好的性能.但所有的细节看起来都非常模糊:距离过近有多近?到目前为止还远吗?
试图将这些问题转化为具体问题:
Haswell预取器运行的当前指令前面的最大距离是多少?
Haswell"跟踪缓存"可能包含的当前指令后面的最大距离是多少?
Haswell上MACHINE_CLEARS.SMC事件的周期实际惩罚是多少?
如何在预测循环中运行生成/执行循环,同时防止预取程序吃掉自己的尾部?
我如何安排流程,以便每个生成的代码始终"第一次看到",而不是踩到已经缓存的指令?
我有一个异步操作,从REST API获取数据:
export const list = (top, skip) => dispatch => {
dispatch({ type: 'LIST.REQUEST' });
$.get(API_URL, { top: top, skip: skip })
.done((data, testStatus, jqXHR) => {
dispatch({ type: 'LIST.SUCCESS', data: data });
});
};
Run Code Online (Sandbox Code Playgroud)
甲同步动作,从而改变skip状态:
export const setSkip = (skip) => {
return {
type: 'LIST.SET_SKIP',
skip: skip
};
};
Run Code Online (Sandbox Code Playgroud)
初始状态为top = 10, skip = 0.在组件中:
class List extends Component {
componentDidMount() {
this.list();
}
nextPage() {
let top = …Run Code Online (Sandbox Code Playgroud) 我有我的java applet codee,我正在尝试使用eclipse Indigo EE进行调试.我正在尝试使用调试配置和端口在远程调试.当我尝试执行应用程序时,它始终给出错误消息,
在"JDI事件调度"java.lang.NullPointerException期间发生内部错误.
并且控制不会在断点处停止.
请帮忙.
此致,KSAT
我在Google上有云托管,说实话它很糟糕,但我想继续使用它,我在VM上安装LAMP堆栈并将我的网站放在htdocs中.当我试图访问我的网站时它给了我 request timeout但有时它工作了5分钟左右.
当我看到apache错误日志时,它给了我这个
075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:55.185819 2015] [proxy_fcgi:error] [pid 4995:tid 140183521683200] (70007)The timeout specified has expired: [client 162.158.255.169:34198] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:55.487458 2015] [core:notice] [pid 2953:tid 140183785137920] AH00052: child pid 4995 exit signal Segmentation fault (11)
[Tue Oct 27 18:12:55.787973 2015] [proxy_fcgi:error] [pid 5063:tid 140183530075904] (70007)The timeout specified has expired: [client 199.27.133.137:13151] AH01075: Error dispatching request to : (polling), referer: http://whichtube.com/watch/g9-4dCeFQng/allama-nasir-abbas-jawab-ali-as-nae-talwar-kayou-na-uthai.html
[Tue Oct …Run Code Online (Sandbox Code Playgroud) 是否可以为一组包含 ...(而不是专门用于...)的签名参数定义方法?这是不可能的"开箱即用",但理论上它是否可能(涉及一些调整)或者由于S4机制的设计方式,这是不能完成的事情?
我正在寻找一些类似的东西
setGeneric(
name = "foo",
signature = c("x", "..."),
def = function(x, ...) standardGeneric("foo")
)
setMethod(
f = "foo",
signature = signature(x = "character", "..." = "ThreedotsRelevantForMe"),
definition = function(x, ...) bar(x = x)
)
Run Code Online (Sandbox Code Playgroud)
谢天谢地,马丁摩根指出了我dotsMethods,它说:
目前,"..."不能与其他形式参数混合:通用函数的签名只是"...",或者它不包含"......".(此限制可能会在将来的版本中解除.)
考虑以下尝试来概括基于...简单情况的调度机制(只有一个函数应该使用传递的参数...;例如使用...in plot()来传递参数par())到涉及以下方面的场景(取自此处):
r,接收者,c 调用堆栈的不同层上时另请注意,尽管这样做确实是一种好习惯,但 …
比较C++中的以下代码:
#include <iostream>
#include <vector>
struct A
{
virtual void bar(void) { std::cout << "one" << std::endl; }
};
struct B : public A
{
virtual void bar(void) { std::cout << "two" << std::endl; }
};
void test(std::vector<A*> objs, void (A::*fun)())
{
for (auto o = objs.begin(); o != objs.end(); ++o)
{
A* obj = (*o);
(obj->*fun)();
}
}
int main()
{
std::vector<A*> objs = {new A(), new B()};
test(objs, &A::bar);
}
Run Code Online (Sandbox Code Playgroud)
在Python中:
class A:
def …Run Code Online (Sandbox Code Playgroud)