我已经看到很多关于如何有效地使用PHP下载文件而不是允许直接HTTP请求(保持文件安全,跟踪下载等)的问题.
答案几乎总是PHP readfile().
但是,虽然它在使用大文件进行测试时效果很好,但是当它在拥有数百个用户的实时网站上时,下载开始挂起并且PHP内存限制已经耗尽.
那么readfile()当流量高时,导致内存爆炸的工作原理是什么呢?我以为它应该通过直接写入输出缓冲区绕过大量使用PHP内存?
编辑:(澄清一下,我正在寻找"为什么",而不是"我能做什么".我认为Apache的mod_xsend文件是规避的最好方法)
我有一个JavaScript应用程序.
它是用jQuery构建的.
它用于$.get()从服务器提取JSON数据,并使用数据加载拼图.
我想将JavaScript应用程序分发给客户端,并使其易于安装.
我希望它只是给他们一个JavaScript块,他们可以放入他们的页面,它将与我的API交互.
我没有传递敏感数据,我的任何API都在保护数据库不受SQL注入等的影响.
我只是想尝试防止未经授权使用我的API,我想不出用JavaScript做到这一点的方法,因为任何拥有DOM检查器的人都可以从任何变量中获取任何凭据,或者可以监控任何服务器流量POST或GET数据...
是否有可能在另一方验证推荐人?
我知道这不是防弹的,但它不是敏感的数据.我只想尽可能减少未经授权的使用..
有任何想法吗?
注意:我知道混淆API密钥或某些东西是徒劳的,我想知道除了传统的密钥之外我还可以使用什么其他控件来识别API的调用者.我可以完全控制API本身,所以我可以在这方面做任何事......
在题为" 机器学习极限 " 的论文中,Canny等.人.报告大量的word2vec处理速度改进.
我正在使用本文中使用的BIDMach库,并且找不到任何解释Word2Vec如何实现或如何在此框架中使用的资源.
回购中有几个脚本:
我试过运行它们(在构建引用的tparse2.exe文件之后)没有成功.
我已经尝试修改它们以使它们运行但除了错误之外什么也没有.
我通过电子邮件发送了作者,并在github repo上发布了一个问题,但一无所获.我只有其他人有同样的麻烦,谁说他得到它运行,但速度比新GPU硬件报告的速度慢得多.
我一直在搜索试图找到任何使用过此库以达到这些速度而没有运气的人.这个库中有多个引用浮动到这个库,作为最快的实现,并引用了论文中的数字:
当我搜索一个类似的库(gensim),以及import运行它所需的代码时,我发现了数以千计的结果和教程,但是对BIDMach代码的类似搜索仅产生了BIDMach仓库.
这个BIDMach实现肯定是最好的声誉,但是那里的任何人都可以告诉我如何使用它吗?
我想要做的就是运行一个简单的培训过程,将它与我自己硬件上的一些其他实现进行比较.
我可以找到的这个概念的每个其他实现都可以使用原始shell脚本测试文件,提供实际指令,或提供自己的shell脚本进行测试.
更新:该库的作者添加了额外的shell脚本以使前面提到的脚本运行,但它们究竟是什么意思或它们如何工作仍然是一个完全的谜,我无法理解如何让word2vec训练程序运行我自己的数据.
编辑(赏金)
我将给予任何可以解释我如何使用我自己的语料库(text8会很棒),然后训练模型,然后将输出向量和词汇表保存到Omar可以读取的文件的任何人的赏金.Levy的Hyperwords.
这正是原始C实现对参数的作用 -binary 1 -output vectors.bin -save-vocab vocab.txt
这也是英特尔的实现,以及其他CUDA实现等,所以这是生成可以轻松与其他版本进行比较的东西的好方法......
UPDATE(赏金过期但没有回答)
John Canny已经更新了repo中的一些脚本并添加了一个fmt.txt文件,因此可以运行repo中包的测试脚本.
但是,我尝试使用text8语料库运行此操作会在高位字测试中产生接近0%的准确率.
在十亿字基准(这就是repo脚本现在所做的)上运行训练过程也会在高字测试中产生低于平均值的准确度.
因此,要么库在这些测试中从未达到准确性,要么我仍然在我的设置中遗漏了一些东西.
我今天注意到我开发的网站突然停止渲染chrome中的"Arial Black"字体.
有谁知道最近的Chrome更新是否会导致"arial black"停止工作?
甚至关于w3schools的例子也停止了使用chrome:http://www.w3schools.com/cssref/css_websafe_fonts.asp
我需要使用PHP的copy()功能将文件从一个位置复制到另一个位置。我故意不使用rename()。
文件为500MB至1GB。在启动PHP脚本后,移动它们大约需要10-20秒(每次执行处理一个文件)。
我的服务器被拒绝的,因为这些文件的上传max_execution_time,post_max_size,upload_max_filesize和memory_limit值,所有这一切都设置高的离谱,但服务器将只超时,当我试图上传。
现在,我担心如果copy()在站点处理大量流量的情况下运行此操作,服务器将失败。
所以我的问题是,PHP的copy()运行方式是否会使服务器的内存和/或执行时间限制过载?
我知道PHP脚本需要花费大量时间才能完成,但是我希望该时间实际上只是一段内存不足的“等待时间”,因为PHP坐下来让服务器OS可以移动文件。不会认为PHP会需要将文件加载到缓冲区或类似的东西来进行复制,但是在此级别上进行内存讨论是我不了解的话题。
谁能解释PHP如何copy()使用内存,以及内存过载是否存在任何风险?
我有一个简单的矩形锚标签.我用jQuery来回应click,并touchstart与下列事件:
$(document).ready(function() {
$("#button").on("click touchstart", function(e) {
$("#log").append(e.type + "<br/>");
});
});
Run Code Online (Sandbox Code Playgroud)
HTML看起来像这样:
<div id="wrapper">
<a id="button" href="#"> </a>
</div>
<div id="log">Log:<br></div>
Run Code Online (Sandbox Code Playgroud)
CSS很简单:
#wrapper {
padding:50px;
}
#button {
display:block;
width:200px;
height:40px;
text-decoration:none;
color:#333;
background-color:#efefef;
border:0px;
padding:0px;
margin:0px;
}
Run Code Online (Sandbox Code Playgroud)
点击矩形锚点的边缘时,仅click触发事件.当您点击该区域的中心,无论是click和touchstart被解雇.
为什么它click似乎只是用胖指检测触发?有没有办法使这个touchstart活动也适用于肥胖的手指?


例如......这就是我在NVIDIA的文档中看到的内容:
cudaMemcpyAsync(a_d, a_h, size, cudaMemcpyHostToDevice, 0);
kernel<<<grid, block>>>(a_d);
cpuFunction();
Run Code Online (Sandbox Code Playgroud)
让我们说这包含在一个函数中......
void consume() {
cudaMemcpyAsync(a_d, a_h, size, cudaMemcpyHostToDevice, 0);
kernel<<<grid, block>>>(a_d);
}
Run Code Online (Sandbox Code Playgroud)
如果我也有功能怎么办?
void produce() {
// do stuff
a_h[0] = 1;
a_h[1] = 3;
a_h[2] = 5;
//...
}
Run Code Online (Sandbox Code Playgroud)
如果我打电话:
produce();
consume();
produce(); // problem??
Run Code Online (Sandbox Code Playgroud)
第二个产生()将开始改变主机上的内存 a_h
在异步内存复制例程中,如何知道CUDA仍未读取主机内存?
如何在a_h不中断异步内存副本的情况下安全地写入主机内存?
编辑 - -
我知道我可以打电话cudaDeviceSynchronize(),cudaStreamSynchronize()但也会等待kernel完成.我宁愿不等到kernel完成.
我想尽快开始写主持人a_h,而不是等待kernel完成.
我明白基本的 C 函数声明意味着什么:
return_type function_name(args) { ... }
然而,当我在一个我没有写的项目上工作时,我发现了一个重复使用的奇怪声明。我不明白这是什么意思。
下面是一个例子:
int C74_EXPORT main(void)
{
...
}
Run Code Online (Sandbox Code Playgroud)
那是什么C74_EXPORT?它有什么作用,这个词叫什么?
我不明白mystery下面的成员是什么类型的财产:
typedef struct _myobject
{
long number;
void *mystery;
} t_myobject;
Run Code Online (Sandbox Code Playgroud)
这个会员是什么样的会员void?这占用了多少内存?我可以在哪里获得有关该功能的更多信息(例如,为什么要使用会员void?)
编辑--更新标题说无效*
我正在查看 django 网站上似乎有冲突的信息。
在此页面上:https : //docs.djangoproject.com/en/1.7/intro/tutorial01/
它说:
将任何这些 Python 代码放在您的 Web 服务器的文档根目录中并不是一个好主意,因为它存在人们可以通过 Web 查看您的代码的风险。这对安全不利。
将您的代码放在文档根目录之外的某个目录中,例如 /home/mycode。
但是,在此页面上:https : //docs.djangoproject.com/en/1.7/howto/deployment/wsgi/modwsgi/ 它说这应该是 Apache 的设置方式:
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com
<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)
后者不是在 www 根目录中显示项目文件吗?
那么哪个是正确的?前者还是后者?
我已经使用这些 linux 命令来设置项目:
cd /home/personal/network/django
django-admin.py startproject djnet
Run Code Online (Sandbox Code Playgroud)
然后我把它放到 httpd.conf 中:
WSGIScriptAlias / /home/personal/network/django/djnet/wsgi.py
WSGIPythonPath /home/personal/network/django
<Directory /home/personal/network/django/djnet>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)
这有效,但我担心我引用的第一页中的“这对安全性不利”行。
我应该将生成的项目代码放在django-admin startproject与 Apache 目录分开的目录中吗?如果是这样,我将如何配置 Apache?