小编Phi*_*ing的帖子

乘法比浮动除法快吗?

在C/C++中,您可以设置以下代码:

double a, b, c;
...
c = (a + b) / 2;
Run Code Online (Sandbox Code Playgroud)

这与以下内容完全相同:

c = (a + b) * 0.5;
Run Code Online (Sandbox Code Playgroud)

我想知道哪个更好用.一项业务从根本上比另一项更快吗?

c c++ optimization performance

71
推荐指数
3
解决办法
2万
查看次数

使用Files.delete()删除文件时的奇怪行为

请考虑以下示例Java类(下面的pom.xml):

package test.filedelete;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;

import org.apache.commons.io.IOUtils;

public class Main
{
    public static void main(String[] args) throws IOException
    {
        byte[] bytes = "testtesttesttesttesttesttesttesttesttest".getBytes();
        InputStream is = new ByteArrayInputStream(bytes);

        Path tempFileToBeDeleted = Files.createTempFile("test", "");
        OutputStream os = Files.newOutputStream(tempFileToBeDeleted);
        IOUtils.copy(is, os);

        deleteAndCheck(tempFileToBeDeleted);

        // breakpoint 1
        System.out.println("\nClosing stream\n");

        os.close();

        deleteAndCheck(tempFileToBeDeleted);
    }

    private static void deleteAndCheck(Path file) throws IOException
    {
        System.out.println("Deleting file: " + file);
        try
        {
            Files.delete(file);
        }
        catch (NoSuchFileException e) …
Run Code Online (Sandbox Code Playgroud)

java windows file-io

21
推荐指数
1
解决办法
9149
查看次数

是否可以将 Path 参数传递到 FastAPI 依赖函数中?

无论如何,FastAPI“依赖项”是否可以解释路径参数?

我有很多形式的函数:

@app.post("/item/{item_id}/process", response_class=ProcessResponse)
async def process_item(item_id: UUID, session: UserSession = Depends(security.user_session)) -> ProcessResponse:
    item = await get_item(client_id=session.client_id, item_id=item_id)
    await item.process()
Run Code Online (Sandbox Code Playgroud)

一次又一次,我需要传入[多个]参数来获取所需的项目,然后再对其进行操作。这是非常重复的并且使得代码非常冗长。我真正想做的是将itemin 作为参数传递给该方法。

理想情况下,我想建立get_item一个依赖项或以某种方式将其嵌入到路由器中。这将大大减少重复的逻辑和过于冗长的函数参数。问题在于客户端在路径中传递了一些关键参数。

是否可以将 Path 参数传递到依赖项中,或者可能在路由器中执行依赖项并传递结果?

python fastapi

20
推荐指数
1
解决办法
2万
查看次数

可以在构造函数抛出异常后调用finalize吗?

是否使用finalize()该对象的构造函数作为异常来清除对象是否有任何细节.

当调用这种方法时,出了名的错误定义.根据手册:

Java编程语言不保证哪个线程将为任何给定对象调用finalize方法.但是,可以保证,调用finalize时,调用finalize的线程不会持有任何用户可见的同步锁.如果finalize方法抛出未捕获的异常,则忽略该异常并终止该对象的终止.

http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#finalize%28%29

我无法以这种方式触发finalize方法.有没有人知道它是不是被调用了,或者在某些情况下是在构造函数初始化对象后调用它(这是异常).

我问这个是因为我有一个不能清理两次的物体.我试图了解在抛出异常之前清理是否安全,或者我是否必须留下标记finalize()以有效地跳过并且什么都不做.

java constructor exception

17
推荐指数
2
解决办法
1480
查看次数

Java JDBC忽略setFetchSize?

我正在使用以下代码

 st = connection.createStatement(
            ResultSet.CONCUR_READ_ONLY,
            ResultSet.FETCH_FORWARD,
            ResultSet.TYPE_FORWARD_ONLY
             );
 st.setFetchSize(1000);
 System.out.println("start query ");
 rs = st.executeQuery(queryString);
 System.out.println("done query");
Run Code Online (Sandbox Code Playgroud)

查询返回大量(800k)行,并且在打印"开始查询"和"完成查询"之间需要很长时间(~2m).当我在查询中手动设置"限制10000"时,"开始"和"完成"之间没有时间.处理结果需要花费时间,所以我想如果它只是从数据库中获取1k行,处理这些行,并且当它用尽行时它可以在后台获得新行,则总体上更快.

结果集.CONCUR_READ_ONLY等我最后猜测的地方; 我错过了什么吗?

(这是一个postgresql 8.3服务器)

java postgresql jdbc cursor

12
推荐指数
2
解决办法
2万
查看次数

无法在Visual Studio 2017中为安装项目设置64位目标

我正在试图建立一个64位输出的MSI安装程序.我正在使用Visual Studio 2017与商店的Installer Projects插件.

我只是找不到将目标设置为64位的方法.

我收到错误:

Building file 'C:\Users\philip\git\foo\Installer\Debug\Installer.msi'...
Building file 'C:\Users\philip\git\foo\Installer\Debug\Installer.msi'...
ERROR: File 'foo.Core.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
ERROR: File 'foo.Core.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'foo.Core.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
WARNING: File 'foo.Core.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
Run Code Online (Sandbox Code Playgroud)

当我试图改变目标时,我没有给出任何选择.

在此输入图像描述 在此输入图像描述

有什么想法吗?

windows-installer visual-studio-2017

12
推荐指数
1
解决办法
3740
查看次数

将 pydantic 对象写入 sqlalchemy json 列

我正在寻找一种将 pydantic 对象存储在 sqlalchemy json 列中的方法。datetime到目前为止,我的尝试都被pydantic 对象中的一个字段绊倒了。我觉得我错过了一些明显的东西。

我的第一次尝试是简单地序列化.dict(). 但这不会将日期时间对象转换为字符串,因此序列化器崩溃了。如果我使用 进行转换.json,则结果是一个字符串,并且数据库中存储的是字符串的 json,而不是字典。

import sqlalchemy.orm
from pydantic import BaseModel
from datetime import datetime

mapper_registry = sqlalchemy.orm.registry()
Base = mapper_registry.generate_base()


class _PydanticType(sqlalchemy.types.TypeDecorator):
    impl = sqlalchemy.types.JSON

    def __init__(self, pydantic_type):
        super().__init__()
        self._pydantic_type = pydantic_type

    def process_bind_param(self, value, dialect):
        return value.dict() if value else None

    def process_result_value(self, value, dialect):
        return self._pydantic_type.parse_obj(value) if value else None


class Test(BaseModel):
    timestamp: datetime


class Foo(Base):
    __tablename__ = 'foo'
    x = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
    y = …
Run Code Online (Sandbox Code Playgroud)

python datetime sqlalchemy pydantic

9
推荐指数
1
解决办法
5781
查看次数

await 总是给其他任务一个执行的机会吗?

我想知道当事件循环切换任务时,python 提供了什么保证。

据我所知async/await从线程显著不同之处在于基于时间分片事件循环不切换任务,这意味着除非任务收益率(await),它会无限期地进行。这实际上很有用,因为在 asyncio 下管理临界区比使用线程更容易。

我不太清楚的是以下内容:

async def caller():
    while True:
        await callee()


async def callee():
    pass
Run Code Online (Sandbox Code Playgroud)

在这个例子中caller是重复的await。所以从技术上讲,它正在屈服。但是我不清楚这是否会允许事件循环上的其他任务执行,因为它只callee屈服于并且永远不会屈服。

也就是说,如果我callee在“关键部分”内等待,即使我知道它不会阻塞,我是否有发生其他意外事件的风险?

python async-await

8
推荐指数
1
解决办法
775
查看次数

是否可以在使用BOM编码为UTF-8的文件上运行SQLPLUS脚本

我正在尝试运行已从大量源自动生成的脚本集合.不幸的是,其中一些已生成为带有BOM的UTF-8.我已经建立了一个自动删除BOM的系统,但它有点混乱.

未能删除BOM会生成错误:

SP2-0042: unknown command "" - rest of line ignored.
Run Code Online (Sandbox Code Playgroud)

是否可以在具有BOM的脚本文件上运行SQLPLUS?

oracle plsql byte-order-mark utf-8

7
推荐指数
2
解决办法
5363
查看次数

如何在android中滑入和滑出视图

我正在尝试根据活动中其他事件的上下文进行视图(带有一些按钮的线性视图 - R.id.playerControl)滑入和滑出.

为此,我有一个selectMediaItem方法,当用户分别选择或取消选择一个项目时,该方法应显示或隐藏视图.

我是android中的动画新手,我因为两个原因而无法使用它:

  1. 视图在动画时间之外保留在屏幕上,因此当它完成滑出后会跳回 - 然后当请求滑入时它跳出来滑回.

  2. 当视图消失时,屏幕上会有一个永久的黑色空间.我希望视图在可见时填充空间,GONE何时不可用.为此,我希望布局能够随动画一起改变,以便它可以将其他东西推开.

我的代码:

protected void selectMediaItem( ItemHandle item ) {

    if (item != null) {
        if (toPlay == null) {
            View playerControl = findViewById(R.id.playerControl);
            Animation slideInAdmination = AnimationUtils.loadAnimation(this, R.anim.slide_in);
            playerControl.startAnimation(slideInAdmination);
        }
    }
    else {
        if (toPlay != null) {
            View playerControl = findViewById(R.id.playerControl);
            Animation slideInAdmination = AnimationUtils.loadAnimation(this, R.anim.slide_out);
            playerControl.startAnimation(slideInAdmination);
        }
    }
    toPlay = item;
}
Run Code Online (Sandbox Code Playgroud)

slide_in.xml

    <translate
        android:duration="1000"
        android:fromYDelta="100%p"
        android:toYDelta="0" />


</set>
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法将视图滑动到位并再次滑出?

java android android-animation

7
推荐指数
1
解决办法
9240
查看次数