我正在使用NHibernate(2.0.1.4)与NHibernate.Linq(1.0.0.4)从数据库中获取Node类型的对象.
当我得到这些对象时,我得到的集合的最后一个对象是Proxy类型(因为我使用了"NHibernate.ByteCode.LinFu"")
我使用了以下linq查询:
var mynodes = from node in session.Linq<Node>() where ancestorNodes.Contains(node.Id) select node).ToList()
Run Code Online (Sandbox Code Playgroud)
anchestorNodes是要获取的节点对象的Id列表.
当我在"ancestorNodes"列表中有3个id时,我从查询中获得的结果(mynodes)的最后一个对象是nodeProxy类型.
怎么会这样?为什么它总是最后一个对象?我怎么解决这个问题?
我想优化这段代码:
public void PopulatePixelValueMatrices(GenericImage image,int Width, int Height)
{
for (int x = 0; x < Width; x++)
{
for (int y = 0; y < Height; y++)
{
Byte pixelValue = image.GetPixel(x, y).B;
this.sumOfPixelValues[x, y] += pixelValue;
this.sumOfPixelValuesSquared[x, y] += pixelValue * pixelValue;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将用于图像处理,我们目前正在运行约200张图像.我们优化了GetPixel值以使用不安全的代码,我们没有使用image.Width或image.Height,因为这些属性增加了我们的运行时成本.
但是,我们仍然处于低速状态.问题是我们的图像是640x480,所以循环的中间被调用大约640x480x200倍.我想问一下是否有办法以某种方式加速它,或者让我相信它的速度足够快.也许一种方法是通过一些快速的Matrix Addition,或者Matrix Addition固有的n ^ 2操作无法加速它?
也许通过不安全的代码进行数组访问可以加快速度,但是我不知道如何去做,以及它是否值得花时间.可能不是.谢谢.
编辑:谢谢你的所有答案.
这是我们正在使用的GetPixel方法:
public Color GetPixel(int x, int y)
{
int offsetFromOrigin = (y * this.stride) + (x * 3);
unsafe
{
return Color.FromArgb(this.imagePtr[offsetFromOrigin + 2], this.imagePtr[offsetFromOrigin …Run Code Online (Sandbox Code Playgroud) 我只想制作一个可以在zip存档中打开文件的系统,就像我在这个文件中有archive.zip一样.我想创建一个类来生成这个页面zip.php?archiver = archive.zip&file = file.text我想要的这个页面向我展示了file.text内容的任何想法?
我有2个变量,每个变量包含一个数字(整数).我想把它们排在第一和第二大的最低数量.例如:
$sortedVar = getSmaller(45, 62); // Will return 45
$sortedVar = getSmaller(87, 23); // Will return 23
Run Code Online (Sandbox Code Playgroud)
你知道我想做什么吗?你能帮我吗?谢谢 :)
我目前有一个查询结束,ORDER BY RAND(HOUR(NOW())) LIMIT 40以获得40个随机结果.结果列表每小时更改一次.
这会终止查询缓存,这会破坏性能.
你能否建议另一种方法来获得随时变化的随机(ish)结果集?它不一定是每个小时,也不一定是完全随机的.
我更喜欢随机结果,而不是在表格中的任意字段上排序,但我会这样做作为最后的手段......
(这是我想要随时改变的新产品列表).
如何绘制表示地球平面地图上2点之间最短距离的曲线?
当然,线不是直线,因为地球是弯曲的.(例如,两个机场之间的最短距离是弯曲的.)
编辑:谢谢所有答案的家伙 - 抱歉,我选择解决方案的速度很慢:/
我正在尝试编写数据迁移 pl/sql 脚本,以将一个架构中的某些数据传输到另一台服务器上的不同架构。第二个数据库作为原始数据库的一个子集开始,但我们已经修改了架构。所以我不能只对每个表使用以下内容:
Insert into DB2.table_name select * from DB1.table_name2;
Run Code Online (Sandbox Code Playgroud)
我尝试搜索显示如何执行此操作的示例脚本,但找不到任何内容。
情况:
我的应用程序需要处理业务规则的第一步(初始的try-catch语句).如果进程在该步骤中调用辅助方法时发生某个错误,我需要切换到catch语句中的第二个进程.备份过程使用相同的帮助程序方法.如果在第二个进程中发生同样的错误,我需要停止整个进程并抛出异常.
执行:
我打算在第一个try-catch陈述的catch陈述中插入另一个try-catch陈述.
//run initial process
try
{
//initial information used in helper method
string s1 = "value 1";
//call helper method
HelperMethod(s1);
}
catch(Exception e1)
{
//backup information if first process generates an exception in the helper method
string s2 = "value 2";
//try catch statement for second process.
try
{
HelperMethod(s2);
}
catch(Exception e2)
{
throw e2;
}
}
Run Code Online (Sandbox Code Playgroud)
这个代码有异味吗?如果是的话,什么是更好的设计模式来避免这种情况?
编辑
我引起了一些混淆,并忽略了当第一个进程失败并切换到第二个进程时,它会向辅助方法发送不同的信息.我已更新方案以反映整个过程.
我想使用Zend Framework 1.9.6版上传图像.上传本身工作正常,但我还想要其他一些东西......而且我完全陷入困境.
所有的想法和建议都非常受欢迎.我已经挣扎了两天了.
这些是简化的代码片段:
myform.ini
method = "post"
elements.title.type = "text"
elements.title.options.label = "Title"
elements.title.options.attribs.size = 40
elements.title.options.required = true
elements.image.type = "file"
elements.image.options.label = "Image"
elements.image.options.validators.isimage.validator = "IsImage"
elements.submit.type = "submit"
elements.submit.options.label = "Save"
Run Code Online (Sandbox Code Playgroud)
的TestController
<?php
class Admin_TestController extends Zend_Controller_Action
{
public function testAction ()
{
$config = new Zend_Config_Ini(MY_SECRET_PATH . 'myform.ini');
$f = new Zend_Form($config);
if ($this->_request->isPost())
{
$data = $this->_request->getPost();
$imageElement = $f->getElement('image');
$imageElement->receive();
//$imageElement->getValue();
if ($f->isValid($data))
{
//save …Run Code Online (Sandbox Code Playgroud) c# ×3
php ×3
file-upload ×1
geography ×1
geometry ×1
math ×1
minimum ×1
mysql ×1
nhibernate ×1
oracle ×1
oracle10g ×1
performance ×1
plsql ×1
random ×1
try-catch ×1