我有一个java程序,这是一个典型的机器学习算法,通过一些方程更新一些参数的值:
for (int iter=0; iter<1000; iter++) {
// 1. Create many temporary variables and do some computations
// 2. Update the value for the parameters
}
Run Code Online (Sandbox Code Playgroud)
更新参数的计算相当复杂,我必须创建许多临时对象,但它们不会在循环之外引用.循环中的代码是CPU密集型的,不访问磁盘.这个程序加载了一个相对较大的训练数据集,因此,我给JVM授予了10G内存(-Xmx10G),这比它要求的要大得多("top"命令或窗口的任务管理器在~6G处达到峰值).
我在几台linux机器(centos 6,24G内存)和一台窗口机器(win7,12G)上进行了测试,两者都安装了SUN Hotspot JDK/JRE 1.8.除了-Xmx之外,我没有指定其他JVM参数.这两台机器都专用于我的程序.
在Windows上,我的程序运行良好:每次迭代使用非常相似的运行时间.但是,所有centos机器的运行时间都很奇怪. 它最初运行正常,但在第7/8次迭代时显着减慢(~10倍慢),然后在每次迭代后保持减速~10%.
我怀疑它可能是由Java的垃圾收集器引起的.因此,我使用jconsole来监控我的程序.次要GC在两台机器上经常发生,这是因为程序在循环中创建了许多临时变量.此外,我使用"jstat -gcutil $ pid $ 1s"命令并捕获统计信息:
Centos:https://www.dropbox.com/s/ioz7ai6i1h57eoo/jstat.png ? dl = 0
窗口:https://www.dropbox.com/s/3uxb7ltbx9kpm9l/jstat-winpng.png?dl = 0
[已编辑]但是,两种机器的统计数据差异很大:
看来我的程序奇怪的行为是由于Java GC?我是Java性能监视器的新手,并不是一个优化GC参数设置的好主意.你有什么建议吗?非常感谢你!
我已经有好几个月的问题,但这个概念很简单:我想阻止一些恶意网站™以编程方式打开标签或弹出窗口.
使用chrome.tabs
API,我可以onCreated
在创建新选项卡时监听,并且我可以轻松地检查谁(即哪个选项卡)打开该特定选项卡访问openerTabId
Tab
传递给回调函数的对象的属性.
现在,我想在创建一个新窗口时做同样的事情:我想知道哪个选项卡打开了窗口(如果有的话,因为它也可能已被用户打开),检查其URL以查看是否它是恶意网站™,并采取相应行动(即阻止弹出窗口).我尝试以完全相同的方式执行它:请求新窗口中的选项卡数组并检查它们的openerTabId
属性,但不幸的是这样的属性没有定义!我搜索了文档和谷歌搜索了几个小时,但遗憾的是,看起来没有简单的方法来检查谁打开了一个窗口.
说明以上内容,我能够做到甚至远远接近我真正想要的东西的唯一方法是:
windowWatchlist
.document.referrer
,它应该包含哪些打开的标签网站的URL:如果参照网址包含恶意网站™的地址我想阻止弹出窗口,然后关闭窗口并从中删除windowWatchlist
.windowWatchlist
,它会从它删除.这是代码(在我的background.js
脚本中运行):
// Called on chrome.windows.onCreated
function watchPopupWindow(window) {
windowWatchlist.push(window.id);
console.log('Added window #' + window.id + ' to watchlist.');
}
// Called on chrome.windows.onRemoved
function …
Run Code Online (Sandbox Code Playgroud) 我在这里阅读了一些有关电子邮件客户端预取电子邮件中的 URL 的问题。对此的答案似乎是添加一个新的确认页面,用户必须在其中单击按钮来确认所需的操作。
但是,这个答案指出了以下内容:
截至 2017 年 2 月,Outlook ( https://outlook.live.com/ ) 会扫描到达收件箱的电子邮件,并将所有找到的 URL 发送到 Bing,以便由 Bing 爬网程序编制索引。
这实际上使得所有一次性使用的链接(例如登录/密码重置/等)变得毫无用处。
(我的服务的用户抱怨一次性登录链接对其中一些人不起作用,而且 BingPreview/1.0b 似乎在用户打开收件箱之前就点击了该 URL)
Drupal 似乎遇到了同样的问题: https ://www.drupal.org/node/2828034
我主要关心的是这个声明:
截至 2017 年 2 月,Outlook ( https://outlook.live.com/ ) 会扫描到达收件箱的电子邮件,并将所有找到的 URL 发送到 Bing,以便由 Bing 爬网程序编制索引。
如果是这种情况,则电子邮件中用于确认操作(例如确认登录、订阅或取消订阅)的任何 URL 最终都可以在搜索引擎中搜索到(如果这就是上面引用中的含义)indexed
。在本例中,它是 Bing。即使是用户确认所需操作的专用确认页面也无法真正缓解这种情况。
如果我通过电子邮件向用户发送一个登录链接,其中 URL 中包含一次性令牌,则该 URL 最终将出现在 Bing 中。该令牌的生命周期很短,比如说 5 分钟,因此我怀疑是否有人会在用户点击该令牌或令牌过期之前在 Bing 上进行搜索并找到该 URL。
用户会收到一封电子邮件,其中包含确认订阅的链接。此链接的有效期可能为 24 小时。这可能(?)足够长,以至于其他人在搜索引擎上偶然发现该链接并意外(或故意)代表用户确认订阅。
场景 #2 并不罕见,据我所知,使用双重选择加入甚至是最佳实践。
取消订阅时事通讯底部的 URL。也许永远有效?您不希望在搜索引擎中公开搜索此内容。
假设所有一次性确认链接都位于用户确认所需操作的确认页面上。
电子邮件中的 URL 被搜索引擎(至少是 Bing)索引真的是问题所在吗?它们最终真的会被公开搜索吗?indexed
如果不是,那么上面引用的内容是什么意思? …
function longestWord(string) {
var str = string.split(" ");
var longest = 0;
var word = null;
for (var i = 0; i < str.length - 1; i++) {
if (longest < str[i].length) {
longest = str[i].length;
word = str[i];
}
}
return word;
}
Run Code Online (Sandbox Code Playgroud)
当我打电话时longestWord("Pride and Prejudice")
,它会返回'Pride'而不是'偏见'这是最长的单词......为什么?我检查了一些其他类似的问题,但解决方案看起来很像我的代码.
我写了一个这样的批处理文件:
Start putty.exe -ssh 172.17.0.52 -l root -m dummy.txt
Run Code Online (Sandbox Code Playgroud)
然后dummy.text
我写了这个命令:
avahi-daemon --no-drop-root -D
export XVHMI_USERCONFIG_PATH=/home/UserProfileConfig
export XDG_RUNTIME_DIR=/tmp
cd /opt/bosch/airis/bin
Run Code Online (Sandbox Code Playgroud)
当我运行.bat文件时,PuTTY启动,命令执行(希望,不确定)并退出.
如何保持窗口打开?
我用谷歌搜索了同样的,但没有坚实的帮助.我读到堆栈溢出本身,我们需要在txt文件中定义一些东西,但是最重要的是什么?
我有一个场景,在我的网页上我做了一个window.open(),打开另一个窗口onLoad()
调用window.print()
.在此流程中,父级window
仍然被冻结,不允许点击任何链接.如何摆脱这个问题?
例如:
HTML页面有三个链接:创建,管理和打印.打印链接的javascript代码如下:
var url = '/actions/print/';
var win = window.open(url,"Title_","resizable=yes,scrollbars=yes,directories=no,titlebar=no,location=no,status=no,menubar=no,width="+width+",height="+height);
Run Code Online (Sandbox Code Playgroud)
现在,呈现的HTML /actions/print
是:
<html><body onload="window.print();"> ... Content goes here ...</body></html>
Run Code Online (Sandbox Code Playgroud)
如您所见,单击打印将打开一个新窗口并立即触发打印.在这种状态下,当我回到具有三个链接的父窗口并尝试单击其他链接时,它不起作用并显示为冻结.
如何创建一个PHP页面来检测用户的互联网速度并在页面上显示?就像是,
你的网速是??? Kbps的
我需要SIGCHLD
妥善处理.如何在现有代码中使用它.目前我不能等待孩子的过程,除非我用0
而不是WNOHANG|WUNTRACED
.
status = 0;
pid_t child, endID;
if(amp == 1)
signal( SIGCHLD, SIG_IGN );
child = fork();
if (child < 0) {
perror("fork() error\n");
exit(EXIT_FAILURE);
} else if (child == 0) {
// do sth here
perror("error\n");
} else {
//sleep(1)
Run Code Online (Sandbox Code Playgroud)
如果我删除sleep
然后父执行第一..为什么?
我遇到了一段奇怪的代码片段,我根本无法理解,这里是:
var obj = function() {};
obj.prototype.x = 5;
var instance1 = new obj();
obj.prototype = {y: 6};
var instance2 = new obj();
console.log(instance1.x, instance1.y, instance2.x, instance2.y);
// 5, undefined, undefined, 6
Run Code Online (Sandbox Code Playgroud)
现在,问题是:
5, undefined, undefined, 6
而不是undefined, 6, undefined, 6
?每个解释都表示赞赏.
我正试图在Twitter上分享包含阿拉伯字符的URL:
http://example.com/????-??????-???????-???-?????-???????/
Run Code Online (Sandbox Code Playgroud)
当我点击"分享"时,推文框中会显示相同的网址,但是当我实际发推文时,它只会链接到http://example.com
,而其余的网址则会丢失.
我尝试过使用urlencode()
,但生成的网址太长且无法发送推文.我该怎么解决这个问题?